求助>gc roots>
4回复

gc roots



书上说, gc roots有4种

虚拟机栈引用的对象
本地栈引用的对象
方法区类静态属性
方法区常量引用的对象

对于young gc,如果考虑老年代引用年轻代,那是不是老年代的卡表也应该作为gc roots

2578 阅读
请先登录,再评论

回复列表

Kyle4月前

按照我的理解,卡表主要的作用并不是记录对象的引用关系,它是用来描述每个区块的使用情况。所以并不是一个使用层面上的东西。
但是具体差了些什么,需要分析下它的数据结构了。

大空翼7月前

卡表可以做到不用扫描整个old,只扫描old存在到young引用的区域

卡表是为了解决old引用young时,需要扫描整个old的问题

可是,如果存活的old本来是gc root可达的,那正常扫描就可以的,为什么还需要卡表呢

会存在
在old区存活,但是gc root不可达的情况吗

大空翼7月前

嗯,是的,如果有老生代到新生代的引用,新生代该对象肯定要被标记