Kas yra „Java“ šiukšlių rinkimas?

Kas yra „Java“ šiukšlių rinkimas?

„Java“ šiukšlių rinkimas yra procesas, kurio metu programos automatiškai atlieka atminties valdymą. Šiukšlių surinkėjas (GC) suranda nenaudojamus objektus ir juos ištrina, kad atgautų atmintį. Programoje „Java“ objektų dinaminis paskirstymas atmintyje pasiekiamas naudojant naują operatorių, kuris naudoja tam tikrą atmintį, ir atmintis lieka paskirstyta, kol bus nuorodų į objekto naudojimą.

Kai nėra nuorodų į objektą, daroma prielaida, kad jis nebereikalingas ir galima atgauti objekto užimtą atmintį. Nereikia aiškiai sunaikinti objekto, nes „Java“ automatiškai tvarko paskirstymą.

Tai pasiekianti technika yra žinoma kaip šiukšlių surinkimas . Programos, kurios neišskiria atminties, ilgainiui gali sugesti, kai sistemoje nelieka atminties, kurią būtų galima paskirstyti. Teigiama, kad šiose programose trūksta atminties.

Šiukšlių surinkimas „Java“ sistemoje įvyksta automatiškai per visą programos veikimo laiką, todėl nebereikia paskirstyti atminties ir taip išvengiama atminties nutekėjimo.

C kalba programuotojas yra atsakingas už dinamiškai paskirstytos atminties paskirstymą naudojant free () funkciją. Čia veda „Java“ atminties valdymas.

Pastaba: visi objektai yra sukurti kaupimo atminties skyriuje. Daugiau apie tai - vėlesnėje pamokoje.

Pavyzdys: išmokti „Java“ šiukšlių surinkimo mechanizmą

1 žingsnis. Nukopijuokite šį kodą į redaktorių.

klasės mokinys {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("a =" + a reikšmė);System.out.println ("b reikšmė =" + b);}public static void main (String args []) {Studentas s1 = naujas studentas ();Studentas s2 = naujas studentas ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Studentas s3;// s3 = s2;//s3.showData ();// s2 = nulis;//s3.showData ();// s3 = nulis;//s3.showData ();}}

2 žingsnis) Išsaugokite, kompiliuokite ir paleiskite kodą. Kaip parodyta diagramoje, sukuriami du objektai ir du pamatiniai kintamieji.

3 žingsnis) Nekomentuokite eilutės # 20,21,22. Išsaugokite, kompiliuokite ir paleiskite kodą.
4 žingsnis) Kaip parodyta toliau pateiktoje diagramoje, du pamatiniai kintamieji rodo tą patį objektą.

5 žingsnis. Nekomentuokite eilutės Nr. 23 ir 24. Kompiliuokite, išsaugokite ir paleiskite kodą.
6 žingsnis) Kaip parodyta toliau pateiktoje diagramoje, s2 tampa niekiniu, tačiau s3 vis tiek rodo į objektą ir nėra tinkamas java šiukšlių surinkimui.

7 žingsnis. Neskelbkite eilutės Nr. 25 ir 26. Išsaugokite, kompiliuokite ir paleiskite kodą.
8 žingsnis. Šiuo metu nėra jokių nuorodų, nukreipiančių į objektą, ir bus tinkamos šiukšlių surinkimui. Jis bus pašalintas iš atminties, ir jokiu būdu negalima jo susigrąžinti.

Kaip ištrinti „Java“ objektą?

1) Jei norite, kad jūsų objektas būtų tinkamas šiukšlių surinkimui, priskirkite jo nuorodos kintamąjį nuliui.
2) Pirmykščiai tipai nėra daiktai. Jiems negalima priskirti nieko.

Įdomios straipsniai...