Vad är Garbage Collection i Java?
Garbage Collection i Java är en process genom vilken programmen utför minneshantering automatiskt. Garbage Collector (GC) hittar de oanvända objekten och tar bort dem för att återta minnet. I Java uppnås dynamisk minnesallokering av objekt med den nya operatören som använder lite minne och minnet förblir allokerat 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 är upptaget av objektet, kan återvinnas. Det finns inget uttryckligt behov av att förstöra ett objekt eftersom Java hanterar avdelningen automatiskt.
Tekniken som åstadkommer detta är känd som Garbage Collection . Program som inte fördelar 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.
Avfallssamling i Java sker automatiskt under programmets livstid, vilket eliminerar behovet av att allokera minne och därigenom undvika minnesläckor.
På C-språk är det programmerarens ansvar att avdela minne som tilldelats dynamiskt med hjälp av gratis () -funktionen. Det är här Java-minneshantering leder.Obs! Alla objekt skapas i Heap- sektionen i minnet. Mer om detta i en senare handledning.
Exempel: Att lära sig mekanismen för skräpsamlare i Java
Steg 1) Kopiera följande kod till en redigerare.
klass 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 ("Värde för b =" + b);}public static void main (String args []) {Student s1 = ny student ();Student s2 = ny 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) Kommentarrad # 20,21,22. Spara, kompilera och kör koden.
Steg 4) Som visas i diagrammet nedan pekar två referensvariabler på samma objekt.
Steg 5) Kommentarrad # 23 & 24. Kompilera, spara och köra koden
Steg 6) Som visas i diagrammet nedan blir s2 noll, men s3 pekar fortfarande på objektet och är inte berättigad till javasamling.
Steg 7) Kommentarrad # 25 & 26. Spara, kompilera och köra koden
Steg 8) Vid denna punkt finns det inga referenser som pekar på objektet och blir berättigade till sopuppsamling. Det kommer att tas bort från minnet och det finns inget sätt att hämta tillbaka det.
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.