Vad är Garbage Collection i Java?

Vad är Garbage Collection i Java?

Skräpsamling i Java är en process där programmen utför minneshantering automatiskt. Garbage Collector (GC) hittar oanvända föremål och raderar dem för att återta minnet. I Java uppnås dynamisk minnestilldelning av objekt med den nya operatören som använder lite minne och minnet förblir tilldelat tills det finns referenser för användning av objektet.



När det inte finns några referenser till ett objekt, antas det inte längre behövas, och minnet som upptas av objektet kan återvinnas. Det finns inget uttryckligt behov av att förstöra ett objekt eftersom Java hanterar avallokeringen automatiskt.

Tekniken som åstadkommer detta är känd som Skräp samling . Program som inte avdelar minne kan så småningom krascha när det inte finns något minne kvar i systemet att allokera. Dessa program sägs ha minnesläckor.



Skräpinsamling i Java sker automatiskt under programmets livstid, vilket eliminerar behovet av att avdela minne och därmed undvika minnesläckor.

På C-språk är det programmerarens ansvar att avdela minne tilldelat dynamiskt med hjälp av gratis () -funktionen. Det är här Java -minneshantering leder.

Obs! Alla objekt skapas i Högen Avsnitt av minne. Mer om detta i en senare handledning.

Exempel: Att lära sig sopmaskinmekanism i Java

Steg 1) Kopiera följande kod till en 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(); } }

Steg 2) Spara, kompilera och kör koden. Som visas i diagrammet skapas två objekt och två referensvariabler.

Steg 3) Okommenterad rad # 20,21,22. Spara, kompilera och kör koden.

Steg 4) Som visas i diagrammet nedan pekar två referensvariabler på samma objekt.



Steg 5) Kommentera rad # 23 & 24. Kompilera, spara och kör koden

Steg 6) Som visas i diagrammet nedan blir s2 null, men s3 pekar fortfarande på objektet och är inte berättigat till java -sophämtning.

Steg 7) Kommentera rad # 25 & 26. Spara, kompilera och kör koden

Steg 8) Vid denna tidpunkt finns det inga referenser som pekar på objektet och blir berättigade till sophämtning. Det kommer att tas bort från minnet, och det finns inget sätt att hämta det tillbaka.

Hur tar jag bort ett objekt i Java?


1) Om du vill göra ditt objekt kvalificerat för Garbage Collection, tilldela dess referensvariabel till null.

2) Primitiva typer är inte objekt. De kan inte tilldelas null.

hp alm intervju frågor och svar