Ответ
Soft Reference удаляется сборщиком мусора (GC) только при нехватке памяти. В отличие от Weak Reference, которая удаляется сразу при отсутствии сильных ссылок, Soft Reference сохраняет объект дольше — до тех пор, пока JVM действительно нуждается в освобождении памяти. Это делает Soft Reference полезным для кэширования.
Пример:
val softRef = SoftReference<BigData>(BigData())
// Пока памяти хватает, softRef.get() вернет объект
// При нехватке памяти GC может очистить softRef
Важно: поведение может немного отличаться в зависимости от версии Android и JVM.