Hva er søppelinnsamling i Java?

Innholdsfortegnelse:

Anonim

Hva er søppelinnsamling i Java?

Søppelinnsamling i Java er en prosess der programmene utfører minneadministrasjon automatisk. Garbage Collector (GC) finner de ubrukte objektene og sletter dem for å gjenvinne minnet. I Java oppnås dynamisk minnetildeling av objekter ved hjelp av den nye operatøren som bruker noe minne, og minnet forblir allokert til det er referanser for bruk av objektet.

Når det ikke er referanser til et objekt, antas det ikke lenger å være nødvendig, og minnet, som er okkupert av objektet, kan gjenvinnes. Det er ikke noe eksplisitt behov for å ødelegge et objekt ettersom Java håndterer avdelingen automatisk.

Teknikken som oppnår dette er kjent som søppelinnsamling . Programmer som ikke tildeler minne kan til slutt krasje når det ikke er noe minne igjen i systemet å tildele. Disse programmene sies å ha minnelekkasjer.

Søppelinnsamling i Java skjer automatisk i løpet av programmets levetid, og eliminerer behovet for å allokere minne og dermed unngå minnelekkasjer.

På C-språk er det programmererens ansvar å avfordele minne som er tildelt dynamisk ved hjelp av gratis () -funksjonen. Det er her Java-minneadministrasjon fører.

Merk: Alle objekter er opprettet i Heap- delen av minnet. Mer om dette i en senere veiledning.

Eksempel: Å lære Møbler for søppeloppsamler i Java

Trinn 1) Kopier følgende kode til en redaktør.

klasse Student {int a;int b;public void setData (int c, int d) {a = c;b = d;}offentlig ugyldig showData () {System.out.println ("Verdi av a =" + a);System.out.println ("Verdi av 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 ();}}

Trinn 2) Lagre, kompiler og kjør koden. Som vist i diagrammet opprettes to objekter og to referansevariabler.

Trinn 3) Kommentarlinje nr. 20,21,22. Lagre, kompiler og kjør koden.
Trinn 4) Som vist i diagrammet nedenfor, peker to referansevariabler mot det samme objektet.

Trinn 5) Kommentarlinje nr. 23 og 24. Kompiler, lagre og kjør koden.
Trinn 6) Som vist i diagrammet nedenfor blir s2 null, men s3 peker fortsatt på objektet og er ikke kvalifisert for Java-søppeloppsamling.

Trinn 7) Kommentarlinje nr. 25 og 26. Lagre, kompiler og kjør koden.
Trinn 8) På dette punktet er det ingen referanser som peker mot objektet og blir kvalifisert for søppeloppsamling. Det vil bli fjernet fra minnet, og det er ingen måte å hente det tilbake.

Hvordan sletter jeg et objekt i Java?

1) Hvis du vil gjøre objektet ditt kvalifisert for søppelinnsamling, tilordner du referansevariabelen til null.
2) Primitive typer er ikke gjenstander. De kan ikke tildeles null.