Wat is Garbage Collection in Java?

Inhoudsopgave:

Anonim

Wat is Garbage Collection in Java?

Garbage Collection 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 enig geheugen gebruikt en het geheugen blijft toegewezen totdat er referenties 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 het ongedaan maken van de toewijzing automatisch afhandelt.

De techniek waarmee dit wordt bereikt, staat bekend als Garbage Collection . Programma's die geen geheugen vrijmaken, kunnen uiteindelijk crashen als er geen geheugen meer in het systeem is om toe te wijzen. Deze programma's zouden geheugenlekken hebben.

Garbage collection in Java gebeurt automatisch tijdens de levensduur van het programma, waardoor de noodzaak om geheugen vrij te geven wordt geëlimineerd en geheugenlekken worden vermeden.

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 leidt.

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

Voorbeeld: het Garbage Collector-mechanisme in Java leren

Stap 1) Kopieer de volgende code naar een editor.

klas leerling {int een;int b;public void setData (int c, int d) {a = c;b = d;​openbare leegte showData () {System.out.println ("Waarde van a =" + a);System.out.println ("Waarde van b =" + b);​public static void main (String args []) {Student s1 = nieuwe student ();Student s2 = nieuwe 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 weergegeven in het diagram, worden twee objecten en twee referentievariabelen gemaakt.

Stap 3) Uncomment-regel # 20,21,22. Bewaar, compileer en voer de code uit.
Stap 4) Zoals weergegeven in het onderstaande diagram, verwijzen twee referentievariabelen naar hetzelfde object.

Stap 5) Uncomment regel # 23 & 24. Compileer, bewaar en voer de code uit.
Stap 6) Zoals getoond in het onderstaande diagram, wordt s2 null, maar s3 wijst nog steeds naar het object en komt niet in aanmerking voor java garbage collection.

Stap 7) Uncomment regel # 25 & 26. Bewaar, compileer en voer de code uit.
Stap 8) Op dit punt zijn er geen verwijzingen naar het object en komt het in aanmerking voor garbage collection. 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.