Достижимость объектов
Сборщик мусора строит граф достижимости от корней (GC roots): стеки потоков, статические поля, JNI-ссылки. Объекты, недостижимые из корней, считаются мусором.
Поколения и алгоритмы
Куча делится на young и old generation. Minor GC собирает молодое поколение копированием выживших, Major GC работает со старым поколением.
- Serial GC — однопоточный, для небольших приложений
- Parallel GC — упор на пропускную способность
- G1 GC — сбалансированный, регионный, по умолчанию с Java 9
- ZGC / Shenandoah — паузы менее миллисекунды