关于活跃线程所引用的对象
来源:7-1 垃圾回收之标记算法
YogurtJ
2019-12-26
老师您好,有两个问题想要请教
- 类的成员变量所引用的对象为什么没有作为GC ROOT呢
- 看了您之前对同学提问的回答 :
“而活跃线程引用的对象则有可能是方法中new出的对象,也有可能是外部new出来的对象,然后被线程的方法所引用到”
可否对 "外部new出来的对象,然后被线程的方法所引用到” 这句话用具体的代码讲解一下呢,感谢!
写回答
1回答
-
翔仔
2019-12-27
同学好,
可以反推一下,GC本身就是为了回收没用的对象实例的,成员变量所引用的对象如果作为GC Root,那么当前对象便会一直存在没法进行回收了,所以要成为GC Root,那么该对象必须是要么是静态的,要么是方法执行完成后就会被确定清除的,也就是具备确定性
其实就是不在方法里面创建的对象,就好比是静态成员变量引用的对象,就当做是外部的对象
042020-03-27
相似问题
GCRoot
回答 1
GC root对象问题
回答 1