Die meisten Programmiersprachen unterstützen objektorientierte Programmierung. Es ist eine Methode, um ein Programm oder eine Software mithilfe von Objekten zu erstellen. Ein Objekt wird mithilfe einer Klasse erstellt. Es handelt sich also um eine Instanz einer Klasse. Eine Klasse liefert die Beschreibung, woraus das Objekt bestehen soll. Beim Anlegen von Objekten wird den Objekten Speicher zugewiesen. Der zugewiesene Speicher sollte am Ende der Programmausführung freigegeben werden, um diesen Speicher für ein anderes Objekt wiederzuverwenden. Programmiersprachen wie Java und C # .NET verwenden Speicherbereiniger für die Speicherverwaltung, während Sprachen wie C und C ++ den Programmierer für die Speicherverwaltung benötigen. Die erforderliche Speichermenge sollte zugewiesen werden, und am Ende der Ausführung sollte der Speicher freigegeben werden. Der Garbage Collector und der Destruktor werden zum Freigeben von Speicher verwendet. Das Hauptunterschied zwischen dem Garbage Collector und dem Destruktor ist das Ein Speicherbereiniger ist eine Software, die eine automatische Speicherverwaltung durchführt, während ein Destruktor eine spezielle Methode ist, die vom Speicherbereiniger während der Zerstörung des Objekts aufgerufen wird.
1. Übersicht und Schlüsseldifferenz
2. Was ist ein Müllsammler?
3. Was ist ein Destruktor?
4. Ähnlichkeiten zwischen Müllsammler und Destruktor
5. Vergleich nebeneinander - Garbage Collector gegen Destructor in tabellarischer Form
6. Zusammenfassung
Einige Programmiersprachen verfügen über verwaltete Code-Umgebungen. In den Programmiersprachen Java und C # wird eine automatische Speicherverwaltung durchgeführt. Der Programmierer muss den von den Objekten verwendeten Speicher nicht freigeben. Es ist für sie einfacher, selbst komplexe Systeme zu entwickeln, da die Speicherverwaltung automatisch erfolgt. In Programmiersprachen wie C, C ++ und Objective C sollte das Programm den Speicher der Objekte an das System zurückgeben. Sprachen wie Java und C # können die Objekte ermitteln, die nicht mehr verwendet werden. Anschließend geben sie den für diese Objekte zugewiesenen Speicher an das System zurück.
Wenn es in den Programmiersprachen C # und Java eine Klasse mit dem Namen Student gibt, kann ein Objekt mit Student s = new Student () erstellt werden. Das 'neue' wird verwendet, um eine Instanz der Student-Klasse zu erstellen. Es weist Speicher im System zu. Das 's' bezieht sich auf den für dieses Objekt zugewiesenen Speicherblock. Die Sprachumgebungen geben an, ob die Objekte verwendet werden oder nicht. Wenn sie nicht weiter verwendet werden, wird der Speicher freigegeben und kann später verwendet werden.
Abbildung 01: Garbage Collector und Destruktor
Beim Ausführen eines Programms werden die Speicherblöcke aus dem Systemspeicherpool zugewiesen. Dann führt das Programm die Aufgaben unter Verwendung dieses Speichers aus. Wenn die Programmausführung beendet ist, ermittelt der Speicherbereiniger, ob die für das Programm zugewiesenen Speicherblöcke erforderlich sind oder nicht. Wenn sie nicht erforderlich sind, werden diese Speicherblöcke an das System zurückgegeben. Der Garbage Collector kann also die erstellten Objekte im Programm verfolgen. Die nicht mehr benötigten Speicherblöcke werden an den Systemspeicherpool zurückgesendet. Der Hauptvorteil dieses Prozesses besteht darin, zu bestätigen, dass sich der Programmierer nicht auf die Speicherfreigabe konzentrieren muss. Es gleicht die Leistung und den Speicherbedarf aus.
Ein Destruktor ist eine spezielle Memberfunktion einer Klasse. Sie wird aufgerufen, wenn das Objekt den Gültigkeitsbereich verlässt. Das Objekt kann zerstört werden, wenn eine Funktion endet oder am Ende der Programmausführung. Der Destruktor hat denselben Namen wie der Klassenname. Der Konstruktor wird zum Erstellen des Objekts verwendet. Es kann Parameter akzeptieren. Der Konstruktor kann auch Rückgabewerte enthalten. In einem Destruktor gibt es jedoch keinen Rückgabetyp oder akzeptierte Parameter. Eine Klasse kann nur aus einem Destruktor bestehen. Ein Destruktor wird mit dem Tilde-Zeichen referenziert. Wenn der Klassenname Student ist, ist der Destruktor ~ Student () ..
Der Garbage Collector sucht nach Objekten, die nicht mehr benötigt werden. Es stellt sicher, dass die Objekte, die nicht mehr vom Programm verwendet werden, zerstört werden. Es ruft den Destruktor auf, um den Speicher freizugeben und die Ressourcen freizugeben. Destruktoren sind nützlich, um Speicher freizugeben, Dateien zu schließen, Netzwerkressourcen freizugeben und Datenbankverbindungen zu schließen. In den meisten Programmiersprachen muss der Destruktor nicht geschrieben werden, da der Garbage Collector den Standardkonstruktor selbst aufruft. Wenn der Programmierer eine dynamische Speicherzuweisung mit Zeigern in einer Sprache wie C ++ ausgeführt hat, sollte er einen Destruktor schreiben, um Speicher freizugeben, bevor das Objekt zerstört wird.
Müllsammler gegen Zerstörer | |
Ein Garbage Collector ist eine Software, die eine automatische Speicherverwaltung durchführt. | Ein Destruktor ist eine spezielle Methode, die vom Garbage Collector während der Zerstörung des Objekts aufgerufen wird. |
Art | |
Ein Garbage Collector ist eine Software. | Ein Destruktor ist eine Methode. |
Garbage Collector und Destruktor sind zwei Begriffe, die mit dem Freigeben von Speicher zusammenhängen. In diesem Artikel wurde der Unterschied zwischen Garbage Collector und Destruktor beschrieben. Der Unterschied zwischen Speicherbereiniger und Destruktor besteht darin, dass ein Speicherbereiniger eine Software ist, die eine automatische Speicherverwaltung durchführt, während ein Destruktor eine spezielle Methode ist, die vom Speicherbereiniger während der Zerstörung des Objekts aufgerufen wird.
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitatvermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter: Unterschied zwischen Garbage Collector und Destructor
1.lyndapodcast. „So funktioniert die C # -Müllsammlung | Lynda. Com-Tutorial. “Funktionsweise der C # -Abfallsammlung | lynda.Com Tutorial, LinkedIn Lernlösungen, 19. September 2011. Hier verfügbar
2. Zerstörer in C. “GeeksforGeeks, 27. Mai 2017. Hier verfügbar
3.Jain, Shubham. "Müllsammler und Zerstörer in C #." C # -Ecke. Hier verfügbar