Junior — Middle
Kedy sa presne vykonáva zberač odpadu pre objekty odkazujúce cez Soft Reference?
sobes.tech AI
Odpoveď od AI
Objekty, na ktoré sa odkazuje cez SoftReference, sú zbierané garbage collectorom iba pri nedostatku pamäte. To znamená, že takéto objekty žijú dlhšie ako objekty s bežnými silnými odkazmi, ale môžu byť odstránené, ak JVM zažíva tlak na pamäť.
SoftReference sa často používa na implementáciu cache: objekty zostávajú v pamäti, pokiaľ sú zdroje dostupné, a sú odstránené, keď je potrebné uvoľniť pamäť.
Garbage collector teda odstráni objekt, na ktorý odkazuje SoftReference, keď:
- Je málo voľného miesta v pamäti.
- JVM rozhodne, že je potrebné uvoľniť pamäť pre nové objekty.
Toto správanie sa líši od WeakReference, kde môže byť objekt zbieraný pri nasledujúcom cykle zbierania odpadu, ak na neho nie sú žiadne silné odkazy.