Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, do czego służy i jak stosuje się klasę WeakReference w Java?

sobes.tech AI

Odpowiedź od AI

Klasa WeakReference w Java służy do tworzenia słabych odwołań do obiektów. W przeciwieństwie do silnych odwołań, słabe odwołania nie zapobiegają zbieraniu śmieci: jeśli obiekt jest dostępny tylko przez słabe odwołania, może zostać usunięty przez garbage collector.

Jest to przydatne na przykład do buforowania, gdy trzeba przechowywać obiekty, ale nie przeszkadzać ich usuwaniu w przypadku braku pamięci. W Androidzie często używa się WeakReference do przechowywania odwołań do Context lub Activity, aby uniknąć wycieków pamięci.

Przykład użycia:

WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
MyObject obj = weakRef.get();
if (obj != null) {
    // obiekt jest jeszcze dostępny
} else {
    // obiekt został usunięty przez garbage collector
}