Что такое корни GC для классов?

в Java есть специальные объекты, называемые Корни Сбора Мусора (корни GC). Они служат корневыми объектами для механизма маркировки сборки мусора (см. рисунок).

enter image description here

в этой статье описывает четыре типа корней GC:

  • локальные переменные
  • активные темы
  • статические переменные
  • JNI references

Он также отметил,, что:

сами классы могут быть собраны в мусор.

корни GC не собираются, поэтому сами классы не являются корнями GC.

Итак, каковы корни GC для классов?

2 ответов


Итак, каковы корни GC для классов?

Classloaders, эффективно-через другие корни GC.

если нет ничего, что может достичь загрузчика классов , что означает, что ничто не может достичь каких - либо экземпляров классов, созданных этим загрузчиком классов, то и загрузчик классов, и созданные им классы имеют право на сборку мусора.


корень сборки мусора-это объект, доступный извне кучи.

анализатор памяти классифицирует корни сбора мусора в соответствии со следующим списком:

  1. класс, загруженный system ClassLoader
    • статическое поле в классах JDK (java.* и т. д.)
  2. живую нитку
    • stack-local vars, метод params
    • java.Ланге.Экземпляр потока
  3. объект проводится как монитор синхронизации
  4. JNI, у ссылок
  5. специальные предложения JVM...

Источник 1 Источник 2