Вопрос проверяет знание основных алгоритмов сборки мусора в Java.
Основные сборщики:
Serial GC — однопоточный, для малых приложений.
Parallel GC — многопоточный, для throughput.
G1 GC — баланс между latency и throughput (по умолчанию с Java 9).
ZGC/Shenandoah — низкие паузы (для больших heap).
Сравнение сборщиков:
Serial GC (-XX:+UseSerialGC):
Работает в одном потоке.
Плюсы: Простота, малый overhead.
Минусы: Долгие паузы.
Для: Приложений с маленьким heap (<100 MB).
Parallel GC (-XX:+UseParallelGC):
Многопоточная очистка.
Плюсы: Максимизирует throughput.
Минусы: Паузы могут быть значительными.
Для: Фоновых задач (например, batch-обработка).
G1 GC (-XX:+UseG1GC):
Разделяет heap на регионы, собирает самые заполненные.
Плюсы: Предсказуемые паузы (<200 ms).
Для: Большинства современных приложений.