Junior — Middle
Tudná magyarázni, hogy mire való és hogyan alkalmazzák a WeakReference osztályt Java-ban?
sobes.tech MI
Válasz az MI-től
A WeakReference osztály Java-ban gyenge hivatkozásokat hoz létre objektumokra. Ellentétben az erős hivatkozásokkal, a gyenge hivatkozások nem akadályozzák a szemétgyűjtőt az objektumok eltávolításában: ha egy objektum csak gyenge hivatkozásokon keresztül érhető el, akkor a szemétgyűjtő eltávolíthatja azt.
Ez hasznos például gyorsítótárazásnál, amikor objektumokat szeretnénk tárolni, de nem akarjuk megakadályozni azok eltávolítását memóriahiány esetén. Androidon gyakran használják a WeakReference-t Context vagy Activity hivatkozások tárolására, hogy elkerüljék a memória szivárgásokat.
Használati példa:
WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
MyObject obj = weakRef.get();
if (obj != null) {
// az objektum még elérhető
} else {
// az objektumot a szemétgyűjtő eltávolította
}