Middle
Коддоо түрлөрү кайда сакталат жана колдонмо иштеп жатканда алар менен эмне болот?
sobes.tech AI
AIден жооп
Референс түрлөрү heapте сакталат.
Киргизүү учурунда төмөндөгүлөр болот:
- Жасоо: Референс түрүндөгү объект түзүлгөндө (мисалы,
new MyClass()), бул объект үчүн эс тутум heapте бөлүнөт. Аны камтыган өзгөрмө ошол эс тутум бөлүгүнө шилтеме сактайт. - Кирүү: Объекттин талааларына жана ыкмаларына кирүү ушул шилтеме аркылуу жүргүзүлөт.
- Көчүрүү (Garbage Collection): Объект башка активдүү бөлүктөрдөн жеткиликтүү болбой калса (аларга шилтемелер жок болсо), көчүргүч эс тутумду бошотуп коё алат. Бул процесс автоматтык түрдө "артынкы" режимде жүрөт жана иштеп чыгуучу тарабынан ачык аралашуу талап кылынбайт. Көчүргүч периоддук түрдө heapти сканерлеп, жеткиликтүү эмес объекттерди табат жана алардын эс тутумун системага кайтарат.
- Өзгөртүү: Объекттин мазмуну heapте өзгөрүшү мүмкүн. Эгер бир нече шилтеме өзгөрмөлөр ошол эле объектке көрсөтсө, анын абалындагы өзгөртүүлөр башка аркылуу да көрүнөт.
- Шилтемени кайра белгилөө: Шилтеме өзгөрмөсү башка объектке же
nullга кайра белгилениши мүмкүн.
Мисал:
// String объектин түзүү (жолдор - шилтеме түрү) heapте
String myString = "Hello";
// myString_2 өзгөрмөсү ошол эле объектке шилтеме кылат
String myString_2 = myString;
// Жаңы String объектин heapте түзүү жана шилтемени кайра белгилөө
myString = "World";
// Эми myString башка объектке шилтеме кылат, ал эми myString_2 эскине калат