Ссылки из старого поколения учитывают через служебные структуры, обновляемые write barriers: card tables и remembered sets. Поэтому young collection не обязана повторно трассировать всё Old Generation.
Как при Minor GC учитываются ссылки из Old Generation на объекты в Young Generation, если трассировка Old Generation не выполняется?
Ссылки из старого поколения учитывают через служебные структуры, обновляемые write barriers: card tables и remembered sets. Поэтому young collection не обязана повторно трассировать всё Old Generation.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Ссылки из старого поколения учитывают через служебные структуры, обновляемые write barriers: card tables и remembered sets. Поэтому young collection не обязана повторно трассировать всё Old Generation.
При записи ссылки JVM отмечает соответствующий участок или отношение регионов. Во время сборки проверяются эти отмеченные области как дополнительные источники ссылок в собираемую область. Например, G1 использует remembered sets для входящих ссылок в collection set. Конкретное устройство зависит от GC, поэтому карточки и remembered sets нельзя считать полностью одинаковыми у всех сборщиков.
Источник: docs.oracle.com.