Junior — Middle
Môžete vysvetliť, čo je slabé odkazovanie v kontexte správy pamäte v Jave?
sobes.tech AI
Odpoveď od AI
V Java je SoftReference typ odkazu, ktorý umožňuje objektu byť zozbieraný garbage collectorom, ak v systéme je nedostatok pamäte, ale pri tom objekt zostáva zachovaný, pokiaľ je dostatok pamäte.
To je užitočné pre cacheovanie: objekty s mäkkými odkazmi nie sú odstránené okamžite, ale iba keď je potrebné uvoľniť pamäť.
Príklad použitia mäkkého odkazu:
import java.lang.ref.SoftReference;
public class SoftReferenceExample {
public static void main(String[] args) {
Object strongRef = new Object();
SoftReference<Object> softRef = new SoftReference<>(strongRef);
strongRef = null; // teraz je objekt dostupný iba cez mäkký odkaz
Object obj = softRef.get();
if (obj != null) {
System.out.println("Objekt je dostupný");
} else {
System.out.println("Objekt už bol zozbieraný garbage collectorom");
}
}
}