В Java используются различные сборщики мусора, каждый со своими особенностями:
- Serial GC: Однопоточный, подходит для небольших приложений и клиентских JVM. При сборке останавливает все потоки приложения (Stop-The-World или STW).
- Parallel GC (Throughput GC): Многопоточный, оптимизирован для увеличения пропускной способности приложения за счет использования нескольких потоков для сборки в молодом поколении и одного потока для старого. Также вызывает STW.
- CMS (Concurrent Mark Sweep GC): Предназначен для минимизации пауз благодаря фазам конкурентной сборки (когда приложение продолжает работать). Имеет фазы STW, но они короче, чем у Serial