Mikä on Java-roskikokoelma?

Mikä on Java-roskikokoelma?

Garbage Collection in Java on prosessi, jolla ohjelmat suorittavat muistinhallinnan automaattisesti. Garbage Collector (GC) löytää käyttämättömät kohteet ja poistaa ne muistin palauttamiseksi. Java-tilassa kohteiden dynaaminen muistin allokointi saavutetaan käyttämällä uutta operaattoria, joka käyttää jonkin verran muistia, ja muisti pysyy allokoituna, kunnes objektin käytölle on viitteitä.

Kun esineeseen ei ole viittauksia, sen oletetaan enää olevan tarpeeton, ja kohteen käyttämä muisti voidaan palauttaa. Objektia ei tarvitse nimenomaisesti tuhota, koska Java käsittelee varauksen purkamisen automaattisesti.

Tämän saavuttava tekniikka tunnetaan nimellä Roskakokoelma . Ohjelmat, jotka eivät vapauta muistia, voivat lopulta kaatua, kun järjestelmässä ei ole varaettavaa muistia. Näillä ohjelmilla sanotaan olevan muistivuotoja.

Java-jätteiden keräys tapahtuu automaattisesti ohjelman elinkaaren aikana, jolloin muistin varaaminen ei ole tarpeen ja siten vältetään muistivuodot.

C-kielellä ohjelmoijan vastuulla on dynaamisesti jaetun muistin varaaminen free () -toiminnon avulla. Täällä Java-muistin hallinta johtaa.

Huomautus: Kaikki objektit luodaan muistin Heap- osioon. Lisätietoja tästä myöhemmässä opetusohjelmassa.

Esimerkki: Opi roskakorjausmekanismi Java-sovelluksessa

Vaihe 1) Kopioi seuraava koodi editoriin.

luokan opiskelija {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("a =" + a: n arvo);System.out.println ("b: n arvo" + b);}public staattinen void main (String args []) {Opiskelija s1 = uusi opiskelija ();Opiskelija s2 = uusi opiskelija ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Opiskelija s3;// s3 = s2;//s3.showData ();// s2 = nolla;//s3.showData ();// s3 = nolla;//s3.showData ();}}

Vaihe 2) Tallenna, käännä ja suorita koodi. Kuten kaaviosta käy ilmi, luodaan kaksi objektia ja kaksi viitemuuttujaa.

Vaihe 3) Kommenttirivi # 20,21,22. Tallenna, käännä ja suorita koodi.
Vaihe 4) Kuten alla olevassa kaaviossa on esitetty, kaksi viitemuuttujaa osoittaa samaan objektiin.

Vaihe 5) Kommenttien poistaminen riviltä # 23 ja 24. Käännä, tallenna ja suorita koodi
Vaihe 6) Kuten alla olevassa kaaviossa näkyy, s2 muuttuu tyhjäksi, mutta s3 osoittaa edelleen objektia eikä ole oikeutettu Java-roskakoriin.

Vaihe 7) Kommenttien poistaminen riveiltä # 25 ja 26. Tallenna, käännä ja suorita koodi
Vaihe 8) Tässä vaiheessa ei ole viitteitä, jotka viittaavat kohteeseen, ja ne ovat oikeutettuja roskakoriin. Se poistetaan muistista, eikä sitä voida mitenkään hakea takaisin.

Kuinka poistaa objekti Java-sovelluksesta?

1) Jos haluat tehdä kohteestasi kelvollisen roskakoriin, määritä sen viitemuuttujalle nolla.
2) Primitiiviset tyypit eivät ole esineitä. Niitä ei voida määrittää tyhjäksi.

Mielenkiintoisia artikkeleita...