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");
}
}
}