关注
61.可达性分析算法具体应用场景:
算法思想:两个对象之间互相循环引用不好解决,那就给他们同一个父祖先,这个对象不管在哪里,只要这个对象到达GC Roots有路,也就是有引用链,那么这个对象就是可达的。反之,如果这个对象到达GC Roots没路了,不可达,那么这个对象已死不可用。图中 Object5,6,7就因为不可达,所有可以被回收。
那么问题来了,这个GC Roots又是何方神圣?
其实这个就是对象,在Java语言中,可作为GC Roots的对象包括下面几种:
虚拟机栈(栈帧中的本地变量表)中引用的对象
方法区中类静态属性引用的对象
方法区中常量引用的对象
本地方法栈中JNI(即一般说的Native方法)引用的对象
System Class(系统类,例如Java.util.*),
Thread Block(一个对象存活在一个阻塞的线程中) ,
Thread(线程),正在运行的线程
Busy Monitor (调用了wait()或notify()或已同步的所有内容。例如,通过调用synchronized(Object)或进入 synchronized 同步方法。静态方法表示类,非静态方法表示对象。
被这些对象引用的对象,都是可达的。
查看原帖
点赞 评论
相关推荐
投票
点赞 评论 收藏
分享


点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习进度记录 #
154414次浏览 1719人参与
# 我的求职精神状态 #
2887次浏览 78人参与
# Keep实习校招 #
48916次浏览 252人参与
# 京东美团大战,你怎么看? #
21176次浏览 190人参与
# 好未来求职进展汇总 #
6007次浏览 46人参与
# 大家每天通勤多久? #
30944次浏览 229人参与
# 平安产险科技中心求职汇总 #
244491次浏览 2613人参与
# 大城市找工作会更容易吗 #
16409次浏览 125人参与
# 金山WPS工作体验 #
20772次浏览 133人参与
# 提前批过来人的忠告 #
97675次浏览 1092人参与
# 签约有哪些注意事项 #
27078次浏览 227人参与
# 招银网络科技工作体验 #
18829次浏览 85人参与
# 生化环材还是天坑吗 #
30031次浏览 277人参与
# 4399求职进展汇总 #
17521次浏览 139人参与
# 中兴求职进展汇总 #
579578次浏览 2614人参与
# 华为存储OD事变 #
121676次浏览 681人参与
# 京东工作体验 #
12535次浏览 88人参与
# 生物制药/化工校招攻略 #
39965次浏览 275人参与
# 校招第一份工作你干了多久? #
66753次浏览 334人参与
# 腾讯音乐求职进展汇总 #
82135次浏览 450人参与
# 小红书求职进展汇总 #
49612次浏览 441人参与
# 宁德时代求职进展汇总 #
104937次浏览 622人参与