请教各位G1垃圾回收器的一些问题,球球了

烟凉. 茶空 2020-10-13 10:08:57
一. 在YoungGC和MixGC中为什么要单独扫描年轻代对象对老年代对象的引用?
二. root region scan阶段到底是干什么的?(不要复制官方文档)
三. 标记对象标记的是什么?对象头?记录对象地址?
四. 老年代region拥有的RSet在哪个阶段被使用?
五. 并发标记阶段确认最有价值区域,可是还没有重新标记,也就说此时标记不完全,怎么确认最有价值区域呢?

暂时先这么多吧。
谢谢好兄弟,如果有的话。
...全文
164 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟凉. 茶空 2020-11-16
  • 打赏
  • 举报
回复
大体上都能说得过去,可是具体实现细节不弄清楚挺不爽的,就像是不只要知道原理,还要知道源码。不过网上的博客基本都说不清这些事。 谢谢老哥。
qq_44828365 2020-11-16
  • 打赏
  • 举报
回复
简单讲一句,普通讲的 Java 对象实际上是 C++ 的 OOP对象,它分为两部分,一部分是 OOP 对象头,即我们平常讲的对象头,一部分是 OOP 对象体,即对象数据存储的位置,对象头中有一个 GC 标志,这个 GC 标志跟锁标志 一起使用 2bit 表示,即这个 2bit 可以表示锁标志,也可以表示 GC 标志,当 2bit 为 11 时,表示该对象需要被回收。不过 GC 具体标记的是什么我不清楚,不过回收对象的标志就是这个 GC 标志 还有 Rset 的作用是跟 CMS 的卡表一样的,用于解决跨代引用,卡表的作用是避免在 young GC 时扫描整个老年代,而 G1 的 RSet 的设计应该不只是为了 young GC,mixed GC 也会使用

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧