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

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Was ist Java Garbage Collection?

Javas Garbage Collector (GC) verwaltet den Speicher automatisch und befreit Entwickler von manueller Freigabe. Wenn ein Objekt keine lebenden Referenzen mehr hat, gibt der GC seinen Heap-Speicher frei und verhindert so Speicherlecks, die Anwendungen sonst zum Absturz bringen könnten.

In Java werden Objekte über den new-Operator auf dem Heap erstellt. Die Laufzeitumgebung behält Referenzen im Auge; wenn die letzte Referenz verschwindet, wird das Objekt sammelbar. Der GC läuft regelmäßig im Hintergrund und macht Ihren Code einfacher und sicherer.

Im Gegensatz zu C, wo free() erforderlich ist, eliminiert Java das Risiko von hängenden Zeigern und undefiniertem Verhalten, was Zuverlässigkeit und Sicherheit stärkt.

Alle Objekte in Java leben im Heap-Speicherbereich – dem Bereich, den der GC scannt.

Praxisbeispiel: GC in Aktion beobachten

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 – Kompilieren und ausführen. Zunächst werden zwei Student-Objekte und zwei Referenzvariablen erstellt. Siehe Diagramm unten.

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Schritt 3 – Zeilen 20‑22 einkommentieren und erneut ausführen. Nun zeigt s3 auf dasselbe Objekt wie s2. Das Diagramm zeigt beide Referenzen, die ein Objekt teilen.

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Schritt 4 – Zeilen 23‑24 einkommentieren. Das Setzen von s2 auf null lässt s3 als einzige Referenz übrig, das Objekt ist also noch lebendig.

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Schritt 5 – Zeilen 25‑26 einkommentieren. Mit sowohl s2 als auch s3 auf null gesetzt, wird das Objekt für GC sammelbar. Das finale Diagramm veranschaulicht diesen Zustand.

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Ein Objekt für die Sammlung berechtigen

  1. Weisen Sie seiner Referenzvariable null zu. Der GC wird den Speicher freigeben, wenn er läuft.
  2. Primitive Typen (int, double usw.) sind keine Objekte und können nicht null sein.

Java Garbage Collection verstehen: Funktionsweise und Bedeutung

Hinweis: Explizite Finalizer werden nicht empfohlen; verlassen Sie sich stattdessen auf den GC.

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  3. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  4. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  5. Java static erklärt: Variablen, Methoden und Blöcke – Praxisbeispiele
  6. Interface vs. Abstrakte Klasse in Java: Die richtige Abstraktion wählen
  7. Konstruktor-Überladung in Java – Erklärt mit praktischen Code-Beispielen
  8. Java Collections meistern: Umfassender Leitfaden für effiziente Datenstrukturen
  9. Java 10: Garbage-Collector Interface (JEP 304) & Parallel Full GC für G1 (JEP 307)
  10. Java 10: Heap auf alternativen Speicher (NV-DIMM) allozieren – JEP 316