Каковы корни GC для классов?
В Java существуют специальные объекты, называемые Roots Collection Roots (корни GC). Они служат корневыми объектами для механизма маркировки мусора (см. Рисунок).
![enter image description here]()
В этой статье описываются четыре типа корней GC:
- локальные переменные
- активные потоки
- статические переменные
- Ссылки JNI
Также упоминается, что:
сами классы могут быть собраны в мусор.
GC-корни не собираются, поэтому сами классы не являются корнями GC.
Итак, каковы корни GC для классов?
Ответы
Ответ 1
Итак, каковы корни GC для классов?
Classloaders, эффективно - через другие корни GC.
Если нет ничего, что может дойти до загрузчика классов, что означает, что ничто не может достигнуть каких-либо экземпляров классов, созданных этим загрузчиком классов, - тогда как загрузчик классов, так и созданные классы имеют право на сбор мусора.
Ответ 2
Корень сборки мусора - это объект, который доступен снаружи кучи.
Memory Analyzer классифицирует корни сборки мусора согласно следующему списку:
- Класс загружается системой ClassLoader
- статическое поле в классах JDK (java. * и т.д.)
- Живая нить
- стек -local переменные, параметры метода
-
java.lang.Thread
instance
- Объект удерживается как монитор синхронизации
- JNI ссылки
- JVM специальные...
Источник 1 Источник 2