Какие знаешь причины удаления Strong-ссылки

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

Ответ

  1. Завершение жизненного цикла объекта: Когда объект больше не нужен, strong-ссылка удаляется, чтобы освободить память.
  2. Явный вызов removeObserver или аналоги: Например, в LiveData или RxJava подписки.
  3. Использование weak/soft ссылок: Если ссылка заменяется на WeakReference или SoftReference.
  4. Null присваивание:
var strongRef: Any? = Any()
strongRef = null // strong-ссылка удалена
  1. Выход из скоупа: Локальные переменные удаляются после завершения блока кода.
  2. Очистка коллекций: Удаление объекта из List, Map и т.д.