Что происходит с объектами которые больше не нужны в Java

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

Ответ

В Java объекты, на которые больше нет ссылок, автоматически удаляются сборщиком мусора (Garbage Collector, GC). GC периодически проверяет граф объектов в памяти и освобождает память от недостижимых объектов.

Пример:

void example() {
    Object obj = new Object(); // Создаётся объект
    obj = null; // Теперь объект недостижим
    // GC может удалить его в любой момент
}

Нюансы:

  1. Не гарантируется моментальное удаление
  2. Можно вызвать System.gc(), но это лишь рекомендация
  3. Финализаторы (finalize()) не гарантируют своевременное выполнение
  4. В Android рекомендуется избегать создания лишних объектов