Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Wat Is Java Garbage Collection?

Java's Garbage Collector (GC) beheert geheugen automatisch, waardoor ontwikkelaars vrijgesteld worden van handmatige deallocatie. Wanneer een object geen live referenties meer heeft, claimt de GC de heap-ruimte terug, wat geheugenlekken voorkomt die applicaties anders kunnen laten crashen.

In Java worden objecten op de heap aangemaakt via de new operator. De runtime houdt referenties bij; wanneer de laatste referentie verdwijnt, wordt het object in aanmerking genomen voor verzameling. De GC draait periodiek op de achtergrond, wat je code eenvoudiger en veiliger maakt.

In tegenstelling tot C, waar free() vereist is, elimineert Java het risico op dangling pointers en ongedefinieerd gedrag, wat betrouwbaarheid en beveiliging versterkt.

Alle objecten in Java leven in de heap sectie van het geheugen – het gebied dat de GC scant.

Praktisch Voorbeeld: GC in Actie Waarnemen

Stap 1 – Kopieer de onderstaande code in een editor:

class Student {
    int a;
    int b;
    public void setData(int c, int d) {
        a = c;
        b = d;
    }
    public void showData() {
        System.out.println("Waarde van a = " + a);
        System.out.println("Waarde van 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();
    }
}

Stap 2 – Compileer en voer het programma uit. Initieel worden twee Student objecten en twee referentievariabelen aangemaakt. Zie het diagram hieronder.

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Stap 3 – Uncomment regels 20‑22, en voer opnieuw uit. Nu wijst s3 naar hetzelfde object als s2. Het diagram toont beide referenties die één object delen.

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Stap 4 – Uncomment regels 23‑24. Het instellen van s2 op null laat s3 als enige referentie over, dus het object is nog steeds live.

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Stap 5 – Uncomment regels 25‑26. Met zowel s2 als s3 op null gezet, wordt het object in aanmerking genomen voor GC. Het finale diagram illustreert deze staat.

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Een Object In Aanmerking Brengen Voor Verzameling

  1. Wijs de referentievariabele toe aan null. De GC zal het geheugen dan claimen wanneer hij draait.
  2. Primitieve typen (int, double, etc.) zijn geen objecten en kunnen niet null zijn.

Java Garbage Collection Begrijpen: Hoe Het Werkt en Waarom Het Belangrijk Is

Let op: Expliciete finalizers worden afgeraden; vertrouw op de GC in plaats daarvan.

Java

  1. Java-operators beheersen: typen, syntax en praktische voorbeelden
  2. Java interfaces meesteren: concepten, implementatie en best practices
  3. Java Try-with-resources meesteren: automatische resource management uitgelegd
  4. Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
  5. Java Static Uitgelegd: Variabelen, Methodes en Blokken – Praktische Voorbeelden
  6. Interface vs Abstracte Klasse in Java: De Juiste Abstractie Kiezen
  7. Constructor Overloading in Java – Uitgelegd met Praktische Codevoorbeelden
  8. Java Collections beheersen: Uitgebreide Gids voor Efficiënte Datastructuren
  9. Java 10: Garbage-Collector Interface voor flexibel, efficiënt geheugenbeheer
  10. Java 10: Heap toewijzen op NV-DIMM met -XX:AllocateHeapAt
  11. Java 9 Collection Factory Methods: Onveranderlijke List, Set & Map eenvoudig aanmaken