Kaj je zbiranje smeti v Javi?

Kazalo:

Anonim

Kaj je zbiranje smeti v Javi?

Zbiranje smeti v Javi je postopek, s katerim programi samodejno izvedejo upravljanje pomnilnika. Zbiralnik smeti (GC) najde neuporabljene predmete in jih izbriše, da si povrne pomnilnik. V Javi se dinamično dodeljevanje pomnilnika predmetov doseže z novim operaterjem, ki uporablja nekaj pomnilnika, in pomnilnik ostane dodeljen, dokler ni referenc za uporabo predmeta.

Ko na objekt ni sklicev, se domneva, da ni več potreben, in pomnilnik, ki ga zaseda objekt, je mogoče povrniti. Predmeta ni treba izrecno uničiti, saj Java samodejno obdela razporeditev.

Tehnika, ki to doseže, je znana kot Zbiranje smeti . Programi, ki ne dodelijo pomnilnika, se lahko sčasoma sesujejo, ko v sistemu ni več prostora za razporeditev. Ti programi naj bi puščali pomnilnik.

Odvoz smeti v Javi se samodejno zgodi v življenjski dobi programa, tako da ni potrebe po razdeljevanju pomnilnika in s tem preprečujemo uhajanje pomnilnika.

V jeziku C je programer odgovoren, da dinamično razdeli dodeljeni pomnilnik s funkcijo free (). Tu vodi upravljanje s pomnilnikom Java.

Opomba: Vsi predmeti so ustvarjeni v odseku kopice pomnilnika. Več o tem v kasnejši vadnici.

Primer: Naučiti se mehanizma zbiralca smeti v Javi

Korak 1) Kopirajte naslednjo kodo v urejevalnik.

razred Študent {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("Vrednost a =" + a);System.out.println ("Vrednost b =" + b);}public static void main (String args []) {Študent s1 = novi Študent ();Študent s2 = nov Študent ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// študent s3;// s3 = s2;//s3.showData ();// s2 = null;//s3.showData ();// s3 = null;//s3.showData ();}}

Korak 2) Shranite, prevedite in zaženite kodo. Kot je prikazano na diagramu, sta ustvarjena dva predmeta in dve referenčni spremenljivki.

3. korak) Vrstica za komentar št. 20,21,22. Shranite, prevedite in zaženite kodo.
Korak 4) Kot je prikazano na spodnjem diagramu, dve referenčni spremenljivki kažeta na isti predmet.

Korak 5) Razkličite vrstico št. 23 in 24. Sestavite, shranite in zaženite kodo.
Korak 6) Kot je prikazano na spodnjem diagramu, s2 postane ničen, vendar s3 še vedno kaže na objekt in ni primeren za zbiranje smeti java.

Korak 7) Razkličite vrstico št. 25 in 26. Shranite, prevedite in zaženite kodo
Korak 8) Na tej točki ni nobenih referenc, ki bi kazale na predmet in je upravičen do odvoza smeti. Odstranjen bo iz pomnilnika in ga ni več mogoče vrniti nazaj.

Kako izbrisati predmet v Javi?

1) Če želite, da je vaš objekt primeren za zbiranje smeti, dodelite njegovo referenčno spremenljivko nič.
2) Primitivni tipi niso predmeti. Ni jim mogoče dodeliti nič.