Sobes.tech
Junior — Middle

Ar galite paaiškinti, kas yra minkšta nuoroda Java atminties valdymo kontekste?

sobes.tech AI

Atsakymas iš AI

Java SoftReference yra tipas nuorodos, leidžiantis objektui būti surinktam šiukšlių surinkėjo, jei sistemos atmintis yra nepakankama, tačiau tuo pačiu metu objektas išlieka, kol yra pakankamai atminties.

Tai naudinga talpykloje: su minkštomis nuorodomis susieti objektai nėra ištrinami iš karto, o tik tada, kai reikia laisvos atminties.

Pavyzdys, kaip naudoti minkštą nuorodą:

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; // dabar objektas yra prieinamas tik per minkštą nuorodą

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objektas prieinamas");
        } else {
            System.out.println("Objektas jau surinktas šiukšlių surinkėjo");
        }
    }
}