采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
“而活跃线程引用的对象则有可能是方法中new出的对象,也有可能是外部new出来的对象,然后被线程的方法所引用到”
可否对 "外部new出来的对象,然后被线程的方法所引用到” 这句话用具体的代码讲解一下呢,感谢!
同学好,
可以反推一下,GC本身就是为了回收没用的对象实例的,成员变量所引用的对象如果作为GC Root,那么当前对象便会一直存在没法进行回收了,所以要成为GC Root,那么该对象必须是要么是静态的,要么是方法执行完成后就会被确定清除的,也就是具备确定性
其实就是不在方法里面创建的对象,就好比是静态成员变量引用的对象,就当做是外部的对象
老师好,这个“外部new出来的对象”是不是已经可以包含在前面几条中了呢?还是有什么特殊情况,是上面几条没涵盖到的呢?望老师求解
同学好,我不太记得上下文了,请问同学说的包含在前几条指的是哪几条呀
老师好,我也有同样的疑问,前几条指的是1.虚拟机栈中引用的对象,2.方法区中的常量引用的对象,3.方法区中静态变量引用的对象,4.本地方法栈中引用的对象。您上面的回答中说 “静态成员变量引用的对象,就当做是外部的对象”,这个静态成员变量就是方法区中的静态变量吧,那是否可以归为第3种。
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14