Автоматический механизм управления памятью. Он находит и удаляет объекты, на которые больше нет активных ссылок в программе, освобождая занимаемую ими память.
Основные стадии работы:
- Пометка (Marking): GC определяет достижимые объекты, начиная с корневых (например, локальные переменные, статические поля).
- Удаление (Deletion): GC освобождает память, занимаемую объектами, которые не были помечены как достижимые.
- Компактирование (Compacting - опционально): Некоторые сборщики мусора перемещают живые объекты, чтобы устранить фрагментацию памяти.
Типы сборщиков мусора:
- Serial GC
- Parallel GC
- CMS (Concurrent Mark-Sweep) GC
- G1 (Garbage First) GC
- ZGC (Z Garbage Collector)
- Shenandoah GC
Выбор сборщика влияет на производительность приложения, потребление памяти и время пауз.