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

Когда объекты перемещаются между отсеками Heap в JVM

В JVM объекты перемещаются между областями кучи (Heap) во время работы сборщика мусора (GC). Основные сценарии:

  1. Young → Old: При достижении возраста выживания (survivor threshold) объект из Eden/Survivor перемещается в Old Gen. По умолчанию threshold = 15 (настраивается через -XX:MaxTenuringThreshold).
  1. Между Survivor spaces: Объекты копируются между S0 и S1 при каждом minor GC.

  2. Compaction: Во время full GC может происходить уплотнение памяти в Old Gen, физически перемещая объекты для устранения фрагментации.

Пример логики перемещения:

java
// Объект сначала в Eden
Object obj = new Object(); 

// После minor GC (если выжил) - в Survivor
// После нескольких GC - в Old Gen

Типы GC влияют на стратегию перемещения:

  • Serial/Parallel GC - используют копирование и компактирование
  • G1 - перемещает объекты между регионами
  • ZGC/Shenandoah - выполняют перемещение одновременно с работой приложения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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