Sobes.tech
Back to questions
Junior — Middle
85

Можете объяснить, для чего и как применяется класс WeakReference в Java?

Companies where asked
RedLab

Answer from AI

sobes.tech AI

Класс WeakReference в Java используется для создания слабых ссылок на объекты. В отличие от сильных ссылок, слабые ссылки не препятствуют сборке мусора: если объект доступен только через слабые ссылки, он может быть удалён сборщиком мусора.

Это полезно, например, для кэширования, когда нужно хранить объекты, но не мешать их удалению при нехватке памяти. В Android часто применяют WeakReference для хранения ссылок на Context или Activity, чтобы избежать утечек памяти.

Пример использования:

WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
MyObject obj = weakRef.get();
if (obj != null) {
    // объект ещё доступен
} else {
    // объект был собран сборщиком мусора
}