Junior — Middle
Дар кадом ҳолатҳо ва дар кадом шартҳо Java ҷамъкунандаи кураро барои намудҳои гуногуни истинодҳо даъват мекунад?
sobes.tech AI
Ҷавоб аз AI
Java-да, қоқыс жинағыш (GC) автоматты түрде жадыны босатады, объектілер қол жетімді болмай қалған кезде. Сілтемелердің түрлері объектінің қол жетімді деп саналатын уақытын әсер етеді:
- Қатты сілтеме (Strong Reference) — кәдімгі сілтеме. Объект кемінде бір қатты сілтеме болғанша жиналмайды.
- Жұмсақ сілтеме (Soft Reference) — жады жетіспеген кезде жиналуы мүмкін, бірақ әдетте сақталады.
- Жеңіл сілтеме (Weak Reference) — келесі GC циклында жиналуы мүмкін, егер қатты сілтемелер болмаса.
- Фантом сілтеме (Phantom Reference) — объектіні жоюды бақылау үшін пайдаланылады, ол бұрыннан қол жетімсіз деп саналады.
Қоқыс жинағыш шақырылады, егер:
- Жады таусылса немесе шекке жетсе.
- JVM жадыны пайдалануын оңтайландыруды шешсе.
Қатты сілтемелері бар объектілер ұзақ өмір сүреді, жұмсақ және әлсіз сілтемелер ерте жиналуы мүмкін, ал фантомдар арнайы мақсаттар үшін пайдаланылады.
Әлсіз сілтемені пайдалану мысалы:
WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
// Егер қатты сілтемелер болмаса, объект GC арқылы жиналуы мүмкін