Как работает современный сборщик мусора в Java, какие старые алгоритмы существуют и на каком принципе он основан?

GC находит объекты, недостижимые от корней, и освобождает их память. Конкретные алгоритмы различаются: маркировка, очистка, копирование и уплотнение комбинируются в разных сборщиках.

Короткий ответ

Что ответить на собеседовании

GC находит объекты, недостижимые от корней, и освобождает их память. Конкретные алгоритмы различаются: маркировка, очистка, копирование и уплотнение комбинируются в разных сборщиках.

Подробный разбор

Ответ с пояснениями

GC находит объекты, недостижимые от корней, и освобождает их память. Конкретные алгоритмы различаются: маркировка, очистка, копирование и уплотнение комбинируются в разных сборщиках.

Классические подходы включают mark-sweep, copying и mark-compact. Например, G1 делит heap на регионы, использует поколения, конкурентную маркировку и перенос живых объектов при очистке выбранных областей. Часть работы всё равно требует пауз. Единого «современного GC» нет: выбор зависит от JVM и требований к задержке и пропускной способности. Наличие циклических ссылок само по себе не мешает сборке недостижимого графа.

Источник: docs.oracle.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее