.net - deutsch - java garbage collector erklärung




Unterschied zwischen Destruktor und Garbage Collector (3)

Ich möchte wissen, gibt es einen Unterschied zwischen Destruktor und Garbage Collector, Destruktor wird verwendet, um alle nicht verwendeten Objekte am Ende der Lebensdauer der Anwendung zu entsorgen, genauso ist die Verwendung der Garbage Collector, Garbage Collector kann manuell aufgerufen oder getan werden am ende der anwendung, gleiches mit dem destruktor, beide sind optional und verwenden, um das nicht referenzierte objekt zu entsorgen, kann mich jemand darauf hinweisen, was genau der Unterschied ist


Der Destruktor ist eine spezielle Memberfunktion, die aufgerufen wird, wenn ein Objekt zerstört wird. Es ist die letzte Methode, die von einer Klasse ausgeführt wird.

Der Garbage Collector ist Teil des Frameworks, verwaltet automatisch den Speicher und sammelt nicht-deterministisch nicht referenzierte Objekte, um Speicherlecks zu vermeiden.


Der Garbage Collector ist ein Teil der .NET-Umgebung, die Objekte verfolgt und sicherstellt, dass Objekte aus dem Speicher entfernt werden, wenn sie nicht mehr benötigt werden.

Ein Destruktor ist ein Teil eines Klassenentwurfs. Es ist das Gegenteil eines Konstruktors. Wenn Sie es deklarieren, ruft der GC es auf, wenn es ein Objekt zerstört.

Hier ist die MSDN-Dokumentation.


Der Garbage Collector arbeitet hauptsächlich, indem er alle Objekte, die er finden kann, in einen neuen Teil des RAMs kopiert und dann den alten Bereich mit Atomwaffen belegt; es weiß weder, noch interessiert es, ob fünf oder 500.000 Objekte zurückgeblieben sind. Beachten Sie, dass der Garbage Collector nicht nur alle Objekte finden kann, auf die Live-starke Referenzen verweisen, sondern auch einige andere Objekte, einschließlich Objekte, die Finalize überschreiben, Objekte, die als Monitorsperren verwendet werden, Objekte, auf die WeakReference-Objekte abzielen usw. Vor dem Nuking der Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Der alte Müllsammler muss sich mit irgendwelchen "speziellen" Objekten befassen, von denen er weiß, dass sie immer noch dort sitzen.

Der Garbage Collector enthält unter anderem eine Liste aller Objekte, die einen Finalizer registriert haben. Alle Objekte in dieser Liste werden daraufhin überprüft, ob sie noch in den neuen Speicherbereich kopiert wurden. Wenn Objekte gefunden werden, die nicht vorhanden sind, werden sie mit einem registrierten Finalizer aus der Liste der Objekte entfernt und zu einer Liste von Objekten hinzugefügt, deren Finalize Methode so bald wie möglich ausgeführt werden soll. Sobald dies für alle Objekte mit einem registrierten Finalizer durchgeführt wurde, werden alle Objekte in der Liste der Objekte, die sofort finalisiert werden müssen, sowie alle Objekte, für die diese Objekte eine Referenz enthalten, in den neuen Bereich kopiert.





destructor