GC Roots — это объекты, от которых начинается процесс сборки мусора. Они не могут быть очищены сборщиком мусора, так как к ним всегда есть ссылки.
Основные типы GC Roots:
- Объекты потоков (Thread objects): Активные потоки всегда считаются корнями.
- Классы (
java.lang.Class
): Статические поля классов. - Локальные переменные: Переменные, находящиеся в стеках активных потоков.
- Статические объекты: Поля классов, объявленные как
static
. - JNI-референсы: Ссылки из нативного кода через Java Native Interface (JNI).
- Old Gen объекты для Minor GC: Объекты в Old Generation могут ссылаться на объекты в Young Generation.