Встречается на собеседованиях • сегодня
Как Garbage collector понимает, что объект можно уничтожить
Garbage Collector (GC) в Java определяет, что объект можно уничтожить, используя алгоритм достижимости. Объект считается недостижимым и подлежащим сборке, если нет ни одной ссылки на него из активных объектов (например, из стека вызовов, статических полей или других живых объектов).
Основные механизмы:
- Счетчик ссылок (редко используется в Java) — подсчитывает ссылки на объект, но не справляется с циклическими зависимостями.
- Tracing (Mark-and-Sweep) — GC помечает все достижимые объекты, начиная с корневых (GC Roots), а затем удаляет непомеченные.
Пример:
java
Object obj1 = new Object(); // Создаем объект (достижим)
Object obj2 = obj1; // obj2 ссылается на тот же объект
obj1 = null; // obj1 больше не ссылается, но obj2 держит объект
obj2 = null; // Теперь объект недостижим — GC может его удалитьGC Roots включают:
- Локальные переменные в стеке
- Статические поля
- Активные потоки
- JNI-ссылки
Объекты в циклических зависимостях также удаляются, если они недостижимы из корней.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы