GC的根源是什么?

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

在这里输入图像描述

本文介绍了四种类型的GC根源:

  • 局部变量
  • 活动线程
  • 静态变量
  • JNI参考
  • 还有人提到,那个:

    课程本身可以被垃圾收集。

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

    那么这些类的GC根源是什么?


    那么这些类的GC根源是什么?

    Classloaders,有效地 - 通过其他GC根源。

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


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

    内存分析器根据以下列表对垃圾收集根进行分类:

  • 类由系统ClassLoader加载
  • JDK类中的静态字段(java。*等)
  • 实时线程
  • 堆栈本地变量,方法参数
  • java.lang.Thread实例
  • 对象保持为同步监视器
  • JNI参考
  • JVM特价商品...
  • 来源1来源2

    链接地址: http://www.djcxy.com/p/19889.html

    上一篇: What are GC roots for classes?

    下一篇: Thread as a GC root