Obyekt destruktsiyasi
Yuqoridagi bo’limda aytilganidek obyektlar “heap” tizim xotirasida joylashadi. Boshqa
manbalar singari tizim xotirasi xam chegaraga ega. Demak, obyektlar bilan ishlash mobaynida
xotirada joyni tejash maqsadida keraksiz obyektlarni muntazam o’chirib turish kerak. Aksariyat
dasturlash tillarida dasturchi keraksiz obyektlarni ochirishni o’zi nazorat qilishi va amalga
oshiruvchi dastur kodini tuzishi kerak. Java dasturlash tili keraksiz obyektlarni ochirishni
avtomatik tizimiga ega bo’lib u keraksiz obyektlarni to’plash tizimi deyiladi.
Agar obyekt dasturning biron bir o’zgaruvchisi tomonidan ssilkaga ega bo’lmasa ushbu obyekt
keraksiz xisoblanadi va keraksiz obyektlarni to’plash tizimi tomonidan o’chiriladi. Ushbu tizim
obyektlarni ssilkalarini muntazam tekshirib turadi va ssilkasi qolmagan obyektlarni o’chirish
uchun belgilaydi va o’chiradi, o’chirilgan obyektlar egallagan xotira manbalari tizimga qaytariladi.
Masalan,
Avtomobil a = new Avtomobil();
a = null;
Dastur kodining birinchi qatorida Avtomobil obyekti yaratilib u
a
o’zgaruvchisi tomonidan
ssilka qilinmoqda. Ikkinchi qatorda
a
o’zgaruvchisi tomonidan Avtomobil obyektiga qilinayotgan
ssilka bekor qilingan. Ushbu qator bajarilgandan keyin Avtomobil obyekti ssilkasiz qolib keraksiz
obyektga aylanadi va keraksiz obyektlarni to’plash tizimi tomonidan o’chiriladi.
Do'stlaringiz bilan baham: |