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