The dispose() method is explicitly called by user to free unmanaged resources such as files, database connections etc whereas finalize() method is implicitly called by garbage collector to free unmanaged resources like files, database connections etc.
The dispose() method belongs to IDisposable interface whereas finalize() method belongs the Object class.