Встречается на собеседованиях • сегодня
Как Garbage Collector понимает какие объекты нужно удалить
Garbage Collector в Java определяет "мусор" через алгоритмы поиска достижимых объектов. Основные подходы:
-
Reference Counting (редко используется в Java) - подсчёт ссылок на объект. Если счётчик = 0, объект считается мусором.
-
Tracing Algorithms (основные в JVM):
- Mark-and-Sweep - проходит по графу объектов, начиная с GC Roots (статические поля, локальные переменные в стеке и т.д.), помечает достижимые объекты. Всё непомеченное удаляется.
- Generational Collection - разделение на Young/Old поколения, где большинство объектов "умирают молодыми".
Пример:
java
Object a = new Object(); // Создаём объект
Object b = a; // b ссылается на тот же объект
a = null; // a больше не ссылается
// Объект ещё достижим через b
b = null; // Теперь объект стал мусоромGC Roots всегда исключены из сборки - это "якорные" точки, от которых строится граф достижимости.

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