Was ist Garbage Collection in Java?
Die Garbage Collection in Java ist ein Prozess, bei dem die Programme die Speicherverwaltung automatisch durchführen. Der Garbage Collector (GC) findet die nicht verwendeten Objekte und löscht sie, um den Speicher zurückzugewinnen. In Java wird die dynamische Speicherzuweisung von Objekten mithilfe des neuen Operators erreicht, der etwas Speicher verwendet, und der Speicher bleibt zugewiesen, bis Referenzen für die Verwendung des Objekts vorhanden sind.
Wenn keine Verweise auf ein Objekt vorhanden sind, wird davon ausgegangen, dass es nicht mehr benötigt wird, und der vom Objekt belegte Speicher kann zurückgefordert werden. Es besteht keine explizite Notwendigkeit, ein Objekt zu zerstören, da Java die Aufhebung der Zuweisung automatisch übernimmt.
Die Technik, die dies erreicht, ist als Garbage Collection bekannt . Programme, die den Speicher nicht freigeben, können schließlich abstürzen, wenn im System kein Speicher mehr zum Zuweisen vorhanden ist. Diese Programme sollen Speicherlecks haben.
Die Speicherbereinigung in Java erfolgt automatisch während der Laufzeit des Programms, sodass kein Speicher mehr freigegeben werden muss und Speicherlecks vermieden werden.
In der Sprache C liegt es in der Verantwortung des Programmierers, die Zuweisung des dynamisch zugewiesenen Speichers mithilfe der Funktion free () aufzuheben. Hier führt die Java-Speicherverwaltung hin.Hinweis: Alle Objekte werden im Heap- Bereich des Speichers erstellt. Mehr dazu in einem späteren Tutorial.
Beispiel: Erlernen des Garbage Collector-Mechanismus in Java
Schritt 1) Kopieren Sie den folgenden Code in einen Editor.
Klasse Student {int a;int b;public void setData (int c, int d) {a = c;b = d;}}public void showData () {System.out.println ("Wert von a =" + a);System.out.println ("Wert von b =" + b);}}public static void main (String args []) {Student s1 = neuer Student ();Student s2 = neuer Student ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Student s3;// s3 = s2;//s3.showData ();// s2 = null;//s3.showData ();// s3 = null;//s3.showData ();}}}}
Schritt 2) Speichern, kompilieren und führen Sie den Code aus. Wie im Diagramm gezeigt, werden zwei Objekte und zwei Referenzvariablen erstellt.
Schritt 3) Kommentar Nr. 20,21,22 auskommentieren. Speichern, kompilieren und führen Sie den Code aus.
Schritt 4) Wie in der folgenden Abbildung gezeigt, zeigen zwei Referenzvariablen auf dasselbe Objekt.
Schritt 5) Kommentar Nr. 23 und 24 auskommentieren. Code kompilieren, speichern und ausführen.
Schritt 6) Wie in der folgenden Abbildung gezeigt, wird s2 null, aber s3 zeigt immer noch auf das Objekt und ist nicht für die Java-Garbage-Collection berechtigt.
Schritt 7) Kommentar Nr. 25 und 26 auskommentieren. Code speichern, kompilieren und ausführen.
Schritt 8) Zu diesem Zeitpunkt gibt es keine Verweise auf das Objekt und kann zur Speicherbereinigung verwendet werden . Es wird aus dem Speicher entfernt, und es gibt keine Möglichkeit, es wieder abzurufen.
Wie lösche ich ein Objekt in Java?
1) Wenn Sie Ihr Objekt für die Garbage Collection qualifizieren möchten, weisen Sie seine Referenzvariable null zu.
2) Primitive Typen sind keine Objekte. Sie können nicht null zugewiesen werden.