哪些元素可以当作为"GC Roots"?

 

  • (1)虚拟机栈中的引用:局部变量,方法参数等
  • (2)本地方法栈中的引用
  • (3)静态属性的引用:static
  • (4)常量的引用:static final
  • (5)同步监视器synchronized 持有的锁对象
  • (6)"临时性"加入的引用:
    • 比如分代收集中,只针对于java堆中某一个区域进行回收。该区域的对象也有可能被别的 区域的对象的属性引用,对于该区域来说,别的区域的对象的引用也可以作为"GC Roots"。 (比如只对新生代进行回收,但是新生代的一些对象被老年代引用,那么老年代的对象也可以作为GC Roots)
上一篇:垃圾回收概述


下一篇:JVM——GC