Ответ
Мягкая (weak) ссылка (WeakReference) — это ссылка, которая не предотвращает сборку мусора для объекта. Если на объект остаются только слабые ссылки, GC может удалить его.
Пример:
val obj = Any()
val weakRef = WeakReference(obj)
// GC может очистить obj, если нет других strong ссылок
println(weakRef.get()) // null, если объект удалён
Использование:
- Избегание утечек памяти (например, в кешах,
Listeners). - В комбинации с
WeakHashMapдля хранения временных данных.
⚠️ Всегда проверяйте weakRef.get(), так как объект может быть уже удалён.