关注
三色标记: 通过mspan查看是否被引用 灰色:对象已被标记,但这个对象包含的子对象未标记 黑色:对象已被标记,且这个对象包含的子对象也已标记,gcmarkBits对应的位为1(该对象不会在本次GC中被清理) 白色:对象未被标记,gcmarkBits对应的位为0(该对象将会在本次GC中被清理) 例如,当前内存中有A~F一共6个对象,根对象a,b本身为栈上分配的局部变量,根对象a、b分别引用了对象A、B, 而B对象又引用了对象D,则GC开始前各对象的状态如下图所示: 初始状态下所有对象都是白色的。 接着开始扫描根对象a、b; 由于根对象引用了对象A、B,那么A、B变为灰色对象,接下来就开始分析灰色对象,分析A时,A没有引用其他对象很快就转入黑色,B引用了D,则B转入黑色的同时还需要将D转为灰色,进行接下来的分析。 灰色对象只有D,由于D没有引用其他对象,所以D转入黑色。标记过程结束 最终,黑色的对象会被保留下来,白色对象会被回收掉。
查看原帖
2 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 写给毕业5年后的自己 #
4970次浏览 105人参与
# 国央企笔面经互助 #
129895次浏览 1082人参与
# 华泰证券Fintech星战营 #
169395次浏览 196人参与
# 职场捅娄子大赛 #
323788次浏览 3296人参与
# 好好告别我的学生时代 #
48573次浏览 907人参与
# 一人一个landing小技巧 #
61172次浏览 972人参与
# 毕业季等于分手季吗 #
17582次浏览 223人参与
# 海信求职进展汇总 #
65355次浏览 361人参与
# 晒一下我的毕业照 #
35045次浏览 397人参与
# 记录实习开销 #
31075次浏览 213人参与
# 如何缓解求职过程中的焦虑? #
8244次浏览 106人参与
# 如果今天是你的last day,你会怎么度过? #
22982次浏览 199人参与
# 毕业后不工作的日子里我在做什么 #
172073次浏览 1519人参与
# HR问:你期望的薪资是多少?如何回答 #
40363次浏览 527人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
108547次浏览 783人参与
# 毕业租房也有小确幸 #
110209次浏览 4327人参与
# 视觉/交互/设计百问百答 #
43343次浏览 428人参与
# 大学最后一个寒假,我想…… #
38390次浏览 498人参与
# 2022毕业即失业取暖地 #
97147次浏览 651人参与
# 材料转码还有必要吗? #
22000次浏览 135人参与
# 上班苦还是上学苦呢? #
223207次浏览 1331人参与