Вопрос проверяет понимание того, как сборщик мусора определяет, какие объекты живы.
GC Roots — это начальные точки, от которых GC начинает поиск живых объектов.
Все объекты, достижимые от GC Roots, считаются живыми.
Недостижимые объекты подлежат удалению.
Это основа алгоритма сборки мусора.
Сборщик мусора не удаляет объекты случайно — он анализирует связи между ними.
GC Roots — это набор ссылок, от которых сборщик мусора начинает обход графа объектов.
Они считаются всегда достижимыми.
К GC Roots относятся:
Локальные переменные в стеке потоков
Активные потоки
Статические поля классов
JNI-ссылки
Алгоритм работает так:
GC берет все GC Roots
Обходит все ссылки
Помечает достижимые объекты
Остальные объекты считаются мусором
Понимание GC Roots помогает:
Искать утечки памяти
Анализировать heap dump
Понимать, почему объект не удаляется
GC Roots — это фундамент механизма сборки мусора.
Именно от них зависит, какие объекты останутся в памяти.