三色标记法(总结的非常牛逼,包教包会,不看后悔)
创始人
2024-06-03 08:23:12

白色:尚未被GC访问过的对象

黑色:本对象被访问过,本对象的孩子节点(对象A的属性引用了对象B,则对象A的孩子结点就是对象B)也被访问过

灰色:介于白色和黑色之间,本对象已经访问过,但是本对象的孩子节点还没有访问

总结:白色最纯洁的颜色,我和我的孩子都没有访问(污染)过

黑色是最污浊的颜色,我和我的孩子都访问(污染)过

灰色是介于两者之间的颜色,我被访问过,但是我的孩子还没有被访问(污染)过

我只能说我这个总结优点牛逼!绝绝子!

 白色队列就不需要了,剩下没有染色的对象就是白色

step1:首先,GcRoot直接关联的对象加入到灰色队列中,A,C,K进入灰色队列

 step2.将对象A,C的孩子结点B,D加进灰色队列中(也就是说访问B,D结点)

 这个时候A,C的孩子结点已经被访问过了,所以A,C符合自己和孩子都被访问过了的条件,于是加入到黑色队列中

 step3;将D对象的孩子结点E,G加入到灰色队列中(也就是说访问E,G对象)

 此时B,D的自己和他们的孩子节点都被访问过了,加入到黑色队列中

 最终:

L,M,N三个对象从始至终一直是白色对象,白色对象就是要被回收的对象

相关内容

热门资讯

撕开0蔗糖营销假象:代糖套路暗... 来源:金综科技当下健康消费热潮中,各类饮品、酸奶主打“0蔗糖”卖点,深受减脂、控糖人群青睐。但多数商...
中央第七生态环境保护督察组交办... 本报乌鲁木齐讯(全媒体记者 张贝) 2026年6月10日,中央第七生态环境保护督察组向兵团交办第...
自治区推动爱国卫生工作由环境卫... 本报乌鲁木齐讯(全媒体记者 郑娅莉) 今年5月1日,新修订的《新疆维吾尔自治区爱国卫生工作条例》...
知名车企停产三款国产电车!知情... (来源:车联新生态)据多家媒体报道,宝马将于今年7月起全面停产i3、i5、iX1三款国产纯电车型。针...
哪款好智能手表排行榜 中老年家... 清晨量血压前顺手抬腕查看昨夜深睡时长,服药提醒在表盘轻震浮现,散步途中血氧饱和度实时波动曲线悄然生成...