Čo sa líši medzi rôznymi typmi odkazov v jazyku Java a ako ovplyvňujú zber odpadu?
sobes.tech AI
Odpoveď od AI
V Jave existujú rôzne typy odkazov, ktoré ovplyvňujú správanie Garbage Collectora:
-
Silná referencia (Strong Reference) — bežná referencia na objekt. Pokiaľ existujú silné odkazy, objekt nebude odstránený Garbage Collectorom.
-
Mäkká referencia (Soft Reference) — objekt s mäkkou referenciou sa odstráni iba pri nedostatku pamäte. Používa sa na cache.
-
Slabá referencia (Weak Reference) — objekt so slabou referenciou môže byť odstránený počas nasledujúceho prechodu Garbage Collectora, aj keď existujú slabé odkazy.
-
Fantomová referencia (Phantom Reference) — používa sa na sledovanie okamihu, keď je objekt pripravený na odstránenie, ale ešte nebol odstránený. Umožňuje vykonávať dodatočné akcie po odstránení objektu.
Príklad použitia slabého odkazu:
import java.lang.ref.WeakReference;
public class WeakRefExample {
public static void main(String[] args) {
Object obj = new Object();
WeakReference<Object> weakRef = new WeakReference<>(obj);
obj = null; // Odstránenie silnej referencie
System.gc(); // Spustenie Garbage Collectora
if (weakRef.get() == null) {
System.out.println("Objekt odstránený");
} else {
System.out.println("Objekt je stále dostupný");
}
}
}
Týmto spôsobom umožňuje voľba typu odkazu kontrolovať dobu života objektov a efektívnosť využívania pamäte.