Какие знаешь виды ссылок на объекты

«Какие знаешь виды ссылок на объекты» — вопрос из категории Управление памятью, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java/Android есть 4 вида ссылок:

  1. Strong Reference – обычная ссылка, объект не будет собран GC, пока на него есть strong-ссылки.
Object obj = new Object(); // strong reference
  1. Soft Reference – объект будет собран GC, только если JVM не хватает памяти.
SoftReference<Object> softRef = new SoftReference<>(new Object());
  1. Weak Reference – объект будет собран при следующем проходе GC.
WeakReference<Object> weakRef = new WeakReference<>(new Object());
  1. Phantom Reference – используется для отслеживания момента удаления объекта (через ReferenceQueue).
PhantomReference<Object> phantomRef = new PhantomReference<>(new Object(), new ReferenceQueue<>());

Используются для управления памятью, кеширования и избегания утечек.