Junior — Middle
El tudná magyarázni, hogy mi az a gyenge hivatkozás a Java memória kezelésében?
sobes.tech MI
Válasz az MI-től
A SoftReference Java-ban egy olyan típusú referencia, amely lehetővé teszi, hogy egy objektumot a szemétgyűjtő összegyűjtsön, ha a rendszer memóriája kevés, de amíg elegendő memória van, az objektum megmarad.
Ez hasznos cache-eléshez: a soft referenciákkal rendelkező objektumokat nem törlik azonnal, csak akkor, amikor szükség van a memória felszabadítására.
Példa a soft referencia használatára:
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; // most már csak soft referencia által elérhető az objektum
Object obj = softRef.get();
if (obj != null) {
System.out.println("Objektum elérhető");
} else {
System.out.println("Objektum már összegyűjtésre került a szemétgyűjtő által");
}
}
}