课程的GC根源是什么?

时间:2014-11-28 10:34:28

标签: java garbage-collection jvm

在Java中,有一些名为垃圾收集根的特殊对象(GC根)。它们作为垃圾收集标记机制的根对象(见图)。

enter image description here

This article描述了四种类型的GC根源:

  • 局部变量
  • 活动主题
  • 静态变量
  • JNI参考

还提到:

  

类本身可以被垃圾收集。

没有收集GC根,因此类本身不是GC根。

那么类的GC根源是什么?

2 个答案:

答案 0 :(得分:15)

  

那么类的GC根源是什么?

类加载器,有效 - 通过其他GC根源。

如果没有任何东西可以到达类加载器 - 这意味着没有任何东西可以到达该类加载器创建的类的任何实例 - 那么类加载器和它创建的类都有资格进行垃圾收集。

答案 1 :(得分:4)

垃圾收集根是可以从堆外部访问的对象。

Memory Analyzer根据以下列表对垃圾收集根进行分类:

  1. 由系统ClassLoader加载的类
    • JDK类中的静态字段(java。* etc)
  2. 直播主题
    • stack -local vars,method params
    • java.lange.Thread instance
  3. 对象保持为同步监视器
  4. JNI参考
  5. JVM特价......
  6. Source 1 Source 2