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

Wat is vuilnisophaling in Java?

Wat is Garbage Collection in Java?

Vuilnisophaling in Java is een proces waarbij de programma's automatisch geheugenbeheer uitvoeren. De Garbage Collector (GC) vindt de ongebruikte objecten en verwijdert ze om het geheugen terug te winnen. In Java wordt dynamische geheugentoewijzing van objecten bereikt met behulp van de nieuwe operator die wat geheugen gebruikt en het geheugen blijft toegewezen totdat er verwijzingen zijn voor het gebruik van het object.

Als er geen verwijzingen naar een object zijn, wordt aangenomen dat het niet langer nodig is en kan het geheugen dat door het object wordt ingenomen, worden teruggewonnen. Het is niet expliciet nodig om een ​​object te vernietigen, aangezien Java de de-toewijzing automatisch afhandelt.

De techniek waarmee dit wordt bereikt, staat bekend als Vuilnisophaling . Programma's die de toewijzing van geheugen niet ongedaan maken, kunnen uiteindelijk crashen als er geen geheugen meer in het systeem is om toe te wijzen. Deze programma's zouden geheugenlekken hebben.

Vuilnisophaling in Java gebeurt automatisch tijdens de levensduur van het programma, waardoor de toewijzing van geheugen niet meer nodig is en geheugenlekken worden voorkomen.

In C-taal is het de verantwoordelijkheid van de programmeur om dynamisch toegewezen geheugen vrij te geven met behulp van de functie free(). Dit is waar Java-geheugenbeheer toe leidt.

Opmerking:alle objecten worden gemaakt in Heap Sectie van het geheugen. Meer hierover in een latere tutorial.

Voorbeeld:het vuilnisophaalmechanisme op Java leren

Stap 1) Kopieer de volgende code naar 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("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();
  }
}

Stap 2) Bewaar, compileer en voer de code uit. Zoals in het diagram te zien is, worden er twee objecten en twee referentievariabelen gemaakt.

Stap 3) Uncomment regel # 20,21,22. Bewaar, compileer en voer de code uit.

Stap 4) Zoals in het onderstaande diagram te zien is, wijzen twee referentievariabelen naar hetzelfde object.

Stap 5) Uncomment regel # 23 &24. Compileer, bewaar en voer de code uit

Stap 6) Zoals in het onderstaande diagram te zien is, wordt s2 null, maar s3 wijst nog steeds naar het object en komt niet in aanmerking voor Java-afvalverzameling.

Stap 7) Uncomment regel # 25 &26. Bewaar, compileer en voer de code uit

Stap 8) Op dit moment zijn er geen verwijzingen naar het object en komt het in aanmerking voor garbagecollection. Het wordt uit het geheugen verwijderd en er is geen manier om het terug te halen.

Hoe verwijder ik een object in Java?

1) Als u uw object in aanmerking wilt laten komen voor Garbage Collection, wijst u de referentievariabele toe aan null.

2) Primitieve typen zijn geen objecten. Ze kunnen niet null worden toegewezen.


Java

  1. Java-operators
  2. Java-interface
  3. Java proberen-met-bronnen
  4. Java-annotaties
  5. Statische variabele in Java:wat is statisch blok en methode [voorbeeld]
  6. Interface versus abstracte klasse in Java:wat is het verschil?
  7. Constructoroverbelasting in Java:wat is en programmavoorbeelden
  8. Java - Collecties Framework
  9. Java 10 - Verbeterde afvalinzameling
  10. Java 10 - Heaptoewijzing
  11. Java 9 - Verzamelfabrieksmethoden