Hvad er affaldssamling i Java?

Indholdsfortegnelse:

Anonim

Hvad er affaldssamling i Java?

Garbage Collection i Java er en proces, hvor programmerne automatisk udfører hukommelsesstyring. Garbage Collector (GC) finder de ubrugte objekter og sletter dem for at genvinde hukommelsen. I Java opnås dynamisk hukommelsesallokering af objekter ved hjælp af den nye operator, der bruger noget hukommelse, og hukommelsen forbliver allokeret, indtil der er referencer til brugen af ​​objektet.

Når der ikke er nogen henvisninger til et objekt, antages det ikke længere at være nødvendigt, og hukommelsen, der er optaget af objektet, kan genvindes. Der er ikke noget eksplicit behov for at ødelægge et objekt, da Java håndterer de-allokering automatisk.

Den teknik, der opnår dette, er kendt som affaldssamling . Programmer, der ikke allokerer hukommelse, kan til sidst gå ned, når der ikke er nogen hukommelse tilbage i systemet, der kan allokeres. Disse programmer siges at have hukommelseslækage.

Affaldssamling i Java sker automatisk i løbet af programmets levetid, hvilket eliminerer behovet for at allokere hukommelse og derved undgå hukommelseslækage.

På C-sprog er det programmørens ansvar at de-allokere hukommelse allokeret dynamisk ved hjælp af gratis () -funktionen. Det er her Java-hukommelsesstyring fører.

Bemærk: Alle objekter oprettes i Heap- sektionen i hukommelsen. Mere om dette i en senere tutorial.

Eksempel: At lære Garbage Collector Mechanism i Java

Trin 1) Kopier følgende kode til en editor.

klasse Elev {int a;int b;public void setData (int c, int d) {a = c;b = d;}offentlig ugyldigt showData () {System.out.println ("Værdi af a =" + a);System.out.println ("Værdi af b =" + b);}offentlig statisk ugyldig hoved (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 ();}}

Trin 2) Gem, kompiler og kør koden. Som vist i diagrammet oprettes to objekter og to referencevariabler.

Trin 3) Kommentarlinje nr. 20,21,22. Gem, kompilér og kør koden.
Trin 4) Som vist i diagrammet nedenfor peger to referencevariabler på det samme objekt.

Trin 5) Kommentarlinje nr. 23 & 24. Kompilér, gem og kør koden
Trin 6) Som vist i diagrammet nedenfor bliver s2 nul, men s3 peger stadig på objektet og er ikke berettiget til Java-affaldssamling.

Trin 7) Kommentarlinje nr. 25 & 26. Gem, kompilér og kør koden
Trin 8) På dette tidspunkt er der ingen referencer, der peger på objektet og bliver kvalificeret til affaldsopsamling. Det fjernes fra hukommelsen, og der er ingen måde at hente det tilbage på.

Hvordan slettes et objekt i Java?

1) Hvis du vil gøre dit objekt kvalificeret til affaldssamling, skal du tildele dets referencevariabel til null.
2) Primitive typer er ikke genstande. De kan ikke tildeles null.