Sobes.tech
Junior — Middle

Můžete vysvětlit, co je to měkké odkazování v kontextu správy paměti v Javě?

sobes.tech AI

Odpověď od AI

V Java je SoftReference typ odkazu, který umožňuje objektu být shromážděn garbage collectorem, pokud v systému není dostatek paměti, ale při tom je objekt zachován, dokud je dostatek paměti.

To je užitečné pro cachování: objekty s měkkými odkazy nejsou odstraněny ihned, ale pouze tehdy, když je třeba uvolnit paměť.

Příklad použití měkkého odkazu:

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; // nyní je objekt dostupný pouze přes měkký odkaz

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objekt je dostupný");
        } else {
            System.out.println("Objekt již byl shromážděn garbage collectorem");
        }
    }
}