Middle
Ma'lumot turlari qayerda saqlanadi va ular bilan nima bo'ladi dastur ishga tushirilganda?
sobes.tech AI
AIdan javob
Referent tiplari yonda (Heap) sa saqlanadi.
Ilova ishga tushirilganda, quyidagilar yuz beradi:
- Yaratish: Referens turidagi ob'ekt (masalan,
new MyClass()) yaratilganda, bu ob'ekt uchun xotira yonda ajratiladi. Uni saqlovchi o'zgaruvchi, bu xotira bo'lagiga havola qiladi. - Kirish: Ob'ektning maydonlari va metodlariga kirish, bu havola orqali amalga oshiriladi.
- Chiqindilarni yig'ish (Garbage Collection): Ob'ekt endi aktiv dastur qismidan kirish mumkin bo'lmagan bo'lsa (u uchun hech qanday havola bo'lmasa), chiqindilarni yig'uvchi yonda egallagan xotirani bo'shatishi mumkin. Bu jarayon avtomatik ravishda "orqa fon"da amalga oshadi va dasturchidan aniq aralashuvni talab qilmaydi. Chiqindilarni yig'uvchi muntazam ravishda yonda skaner qiladi, kirish mumkin bo'lmagan ob'ektlarni topadi va ularning xotirasini tizimga qaytaradi.
- O'zgartirish: Ob'ektning mazmuni yonda o'zgartirilishi mumkin. Agar bir nechta havola o'zgaruvchilari bir xil ob'ektga ishora qilsa, uning holatidagi o'zgarishlar boshqa havolalar orqali ham ko'rinadi.
- Havolani qayta tayinlash: Referens o'zgaruvchisi boshqa ob'ektga yoki
nullga qayta tayinlanishi mumkin.
Misol:
// Yonda String ob'ekti yaratish (satrlarga - referens tur)
String myString = "Hello";
// myString_2 o'zgaruvchisi shu ob'ektga ishora qiladi
String myString_2 = myString;
// Yonda yangi String ob'ekti yaratish va havolani qayta tayinlash
myString = "World";
// Endi myString boshqa ob'ektga ishora qiladi, va myString_2 eski ob'ektga ishora qilmoqda