Unterschied zwischen dispose () und finalize ()

Schlüsseldifferenz - entsorgen () vs abschließen ()
 

Das Hauptunterschied zwischen dispose () und finalize () ist das dispose () muss vom Programmierer explizit aufgerufen werden, während finalize () vom Garbage Collector aufgerufen wird, bevor das Objekt zerstört wird.

Das dispose () ist eine Methode zum Schließen oder Freigeben nicht verwalteter Ressourcen wie Dateien und Streams, die von einem Objekt gehalten werden. Finalize ist eine Methode, um Bereinigungsvorgänge für nicht verwaltete Ressourcen durchzuführen, die vom aktuellen Objekt gehalten werden, bevor das Objekt zerstört wird.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist dispose ()
3. Was ist finalize ()
4. Ähnlichkeiten zwischen dispose () und finalize ()
5. Vergleich nebeneinander - dispose () vs finalize () in Tabellenform
6. Zusammenfassung

Was ist dispose ()?

Einer der wichtigsten Vorteile von .NET Framework ist die automatische Garbage Collection. Es gibt automatisch den Speicher der Objekte frei, die nicht verwendet werden. In Programmiersprachen wie C und C ++ muss der Programmierer die Speicherverwaltung selbst übernehmen. In Sprachen wie C #, die auf .NET Framework basieren, wird der Garbage Collector bereitgestellt. Es hilft, den Speicher zu verwalten. Es kann nicht verwendet werden, um die nicht verwalteten Speicherressourcen freizugeben. Die dispose () -Methode kann zum Erreichen dieser Aufgabe verwendet werden.

Die dispose () -Methode kann verwendet werden, um Ressourcen wie Datenbankverbindungen, Dateihandler usw. freizugeben. Diese Methode wird nicht automatisch aufgerufen. Daher sollte der Programmierer diese Methode implementieren. Sobald diese Methode aufgerufen wird, wird der Speicher für die bestimmte nicht verwaltete Ressource freigegeben. Diese Methode wird in der Schnittstelle IDisposeable deklariert.

Was ist finalize ()?

Die finalize-Methode wird vom Garbage Collector nur aufgerufen, wenn der Verweis auf ein Objekt nicht weiter verwendet wird. Diese Methode wird kurz vor dem Zerstören des Objekts aufgerufen. Diese Methode wird mit Hilfe des Destruktors implementiert. Die Methode finalize ist in der Klasse java.lang.object definiert. Diese Methode ist als geschützt deklariert. Es wird nicht als öffentlich deklariert, um den Zugriff der anderen Klassen zu vermeiden. Insgesamt kann die Finalize-Methode die Leistung des Programms verringern, da der Speicher nicht sofort freigegeben wird.

Was ist die Ähnlichkeit zwischen dispose () und finalize ()?

  • Mit dispose () und finalize () kann der für eine nicht verwaltete Ressource zugewiesene Speicher freigegeben werden.

Was ist der Unterschied zwischen dispose () und finalize ()?

dispose () vs finalize ()

Das dispose () ist eine Methode zum Schließen oder Freigeben nicht verwalteter Ressourcen wie Dateien und Streams, die von einem Objekt gehalten werden. Finalize ist eine Methode, um Bereinigungsvorgänge für nicht verwaltete Ressourcen durchzuführen, die vom aktuellen Objekt vor dem Löschen des Objekts gespeichert werden.
 Zielsetzung
Mit der Dispose-Methode werden die nicht verwalteten Ressourcen freigegeben, wenn sie aufgerufen werden. Die finalize-Methode wird verwendet, um die nicht verwalteten Ressourcen freizugeben, bevor das Objekt zerstört wird.
Definierte Schnittstelle oder Klasse
Dispose () wird in der Schnittstelle IDisposable definiert. Finalize () ist in der Klasse java.lang.object definiert.
 Aufrufmethode
Die Dispose-Methode wird vom Programmierer aufgerufen. Die finalize-Methode wird vom Garbage-Collector aufgerufen.
Zugriffsspezifizierer
Die Dispose-Methode ist öffentlich. Die Finalisierungsmethode ist geschützt.
Geschwindigkeit
Die dispose-Methode wird sofort aufgerufen. Die Finalize-Methode wird langsam aufgerufen.
Performance
Durch die Entsorgung wird die Leistung des Programms nicht beeinträchtigt. Die Finalize-Methode kann die Leistung des Programms verringern.

Zusammenfassung - entsorgen () vs abschließen ()

In diesem Artikel wurde der Unterschied zwischen Dispose- und Finalize-Methoden in C # erläutert. Der Unterschied zwischen dispose () und finalize () besteht darin, dass dispose () vom Programmierer explizit aufgerufen werden muss, während finalize () vom Garbage Collector aufgerufen wird, bevor das Objekt zerstört wird.

Referenz:

1. Implementieren Sie Finalisieren und Entsorgen, um nicht verwaltete Ressourcen zu bereinigen. Hier verfügbar  
2. Sharma, Nitya. "Zurück zu den Grundlagen - Entsorgen Sie Vs finalize." C # -Ecke. Hier verfügbar  

Bildhöflichkeit:

1.'Csharp Logo'von Andres15alvarez - Eigenes Werk, (CC BY-SA 4.0) über Commons Wikimedia