Sobes.tech
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:

  1. Tugev Viide (Strong Reference) — tavaline viide objekti. Kuni on tugevaid viiteid, objekti ei eemaldata prügikoristaja poolt.

  2. 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.

  3. 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.