Ответ
В Java (и Android) Garbage Collector работает с тремя типами ссылок:
- Strong Reference - обычная ссылка, объект не будет собран, пока есть strong reference.
Object obj = new Object(); // strong reference
- Soft Reference - объект будет собран только при нехватке памяти.
SoftReference<Object> softRef = new SoftReference<>(new Object());
- Weak Reference - объект может быть собран в любой момент, если нет strong reference.
WeakReference<Object> weakRef = new WeakReference<>(new Object());
- Phantom Reference - используется для отслеживания факта удаления объекта (через ReferenceQueue).
На Android особенно полезны WeakReference для избежания утечек памяти в асинхронных операциях (например, WeakReference к Activity в AsyncTask).