Junior — Middle
Kuidas erinevad Java keeles erinevat tüüpi viited ja kuidas need mõjutavad prügikoristust?
sobes.tech AI
Vastus AI-lt
Java-s on erinevaid viite tüüpe, mis mõjutavad Prügikoristaja (Garbage Collector) käitumist:
-
Tugev Viide (Strong Reference) — tavaline viide objekti. Kuni on tugevaid viiteid, objekti ei eemaldata prügikoristaja poolt.
-
Nõrk Viide (Weak Reference) — objekti nõrk viide võib olla eemaldatud järgmise prügikoristuse läbimisel, isegi kui nõrku viiteid on.
-
Mõttekäigu Viide (Phantom Reference) — kasutatakse jälgimiseks, millal objekt on valmis eemaldamiseks, kuid pole veel eemaldatud. Annab võimaluse teha täiendavaid toiminguid pärast objekti eemaldamist.
Näide nõrga viite kasutamisest:
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; // Tugeva viite eemaldamine
System.gc(); // Prügikoristaja käivitamine
if (weakRef.get() == null) {
System.out.println("Objekt on eemaldatud");
} else {
System.out.println("Objekt on endiselt saadaval");
}
}
}
Sellisel viisil võimaldab viite tüübi valik kontrollida objektide eluiga ja mälu kasutamise tõhusust.