Встречается на собеседованиях • сегодня

Как Garbage Collector понимает какие объекты нужно удалить

Garbage Collector в Java определяет "мусор" через алгоритмы поиска достижимых объектов. Основные подходы:

  1. Reference Counting (редко используется в Java) - подсчёт ссылок на объект. Если счётчик = 0, объект считается мусором.

  2. 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 всегда исключены из сборки - это "якорные" точки, от которых строится граф достижимости.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы