Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Was ist Garbage Collection in Java?

Was ist Garbage Collection in Java?

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 mit dem neuen Operator erreicht, der etwas Speicher verwendet, und der Speicher bleibt zugewiesen, bis Referenzen für die Verwendung des Objekts vorhanden sind.

Wenn es keine Verweise auf ein Objekt gibt, wird davon ausgegangen, dass es nicht mehr benötigt wird, und der von dem Objekt belegte Speicher kann zurückgefordert werden. Es besteht keine explizite Notwendigkeit, ein Objekt zu zerstören, da Java die Zuweisung automatisch aufhebt.

Die Technik, die dies bewerkstelligt, ist als Garbage Collection bekannt . Programme, die keine Speicherzuweisung aufheben, können schließlich abstürzen, wenn im System kein Speicher mehr für die Zuweisung vorhanden ist. Diese Programme sollen Speicherlecks. haben

Die Garbage-Collection in Java erfolgt automatisch während der Lebensdauer des Programms, wodurch die Notwendigkeit entfällt, Speicher freizugeben und dadurch Speicherlecks zu vermeiden.

In der C-Sprache liegt es in der Verantwortung des Programmierers, den dynamisch zugewiesenen Speicher mit der Funktion free() freizugeben. Hier führt die Java-Speicherverwaltung hin.

Hinweis:Alle Objekte werden im Heap erstellt Abschnitt der Erinnerung. Mehr dazu in einem späteren Tutorial.

Beispiel:Garbage-Collector-Mechanismus in Java lernen

Schritt 1) Kopieren Sie den folgenden Code in einen Editor.

class Student{
int a;
int b;

  public void setData(int c,int d){
    a=c;
    b=d;
  }
  public void showData(){
    System.out.println("Value of a = "+a);
    System.out.println("Value of b = "+b);
  }
  public static void main(String args[]){
    Student s1 = new Student();
    Student s2 = new 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 in der Abbildung dargestellt, werden zwei Objekte und zwei Referenzvariablen erstellt.

Schritt 3) Entkommentieren Sie Zeile # 20,21,22. Code speichern, kompilieren und ausführen.

Schritt 4) Wie im Diagramm unten gezeigt, zeigen zwei Referenzvariablen auf dasselbe Objekt.

Schritt 5) Entkommentieren Sie die Zeilen 23 und 24. Kompilieren, speichern und führen Sie den Code aus

Schritt 6) Wie im Diagramm unten gezeigt, wird s2 null, aber s3 zeigt immer noch auf das Objekt und ist nicht für die Java-Garbage-Collection geeignet.

Schritt 7) Entkommentieren Sie die Zeilen 25 und 26. Speichern, kompilieren und führen Sie den Code aus

Schritt 8) An diesem Punkt gibt es keine Referenzen, die auf das Objekt verweisen, und es wird für die Garbage Collection geeignet. Es wird aus dem Speicher entfernt und kann nicht wiederhergestellt werden.

Wie lösche ich ein Objekt in Java?

1) Wenn Sie Ihr Objekt für die Garbage Collection geeignet machen möchten, weisen Sie seine Referenzvariable null zu.

2) Primitive Typen sind keine Objekte. Ihnen kann nicht null zugewiesen werden.


Java

  1. Java-Operatoren
  2. Java-Schnittstelle
  3. Java-Versuch-mit-Ressourcen
  4. Java-Anmerkungen
  5. Statische Variable in Java:Was ist statischer Block &Methode [Beispiel]
  6. Schnittstelle vs. abstrakte Klasse in Java:Was ist der Unterschied?
  7. Konstruktorüberladung in Java:Was ist &Programmbeispiele
  8. Java - Collections-Framework
  9. Java 10 - Erweiterte Garbage-Collection
  10. Java 10 - Heap-Zuweisung