Sobes.tech
Junior — Middle

Kas on pehme viide Java mäluhalduse kontekstis?

sobes.tech AI

Vastus AI-lt

Java-s SoftReference on tüüpi viide, mis võimaldab objekti koguda prügikorjaja, kui süsteemi mälu on ebapiisav, kuid samal ajal säilib objekt seni, kuni mälu on piisavalt.

See on kasulik vahemälu jaoks: pehmed viitedega objektid ei eemaldata kohe, vaid ainult siis, kui on vaja vabastada mälu.

Näide pehme viite kasutamisest:

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; // nüüd on objekt saadaval ainult pehme viitega

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objekt on saadaval");
        } else {
            System.out.println("Objekt on kogutud prügikorjaja poolt");
        }
    }
}