问答

Java虚拟机-记忆集的疑问

作者:admin 2021-07-10 我要评论

看《深入理解Java虚拟机》中传统垃圾收集器(非 G1 )使用记忆集( Remembered Set )来处理跨代引用时根节点枚举的问题。 里边说到 在新生代上建立一个全局的称...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

看《深入理解Java虚拟机》中传统垃圾收集器(非G1)使用记忆集(Remembered Set)来处理跨代引用时根节点枚举的问题。
里边说到

在新生代上建立一个全局的称为记忆集的数据结构,
这个结构把老年代划分为若干个小块,标识出老年代哪一块内存会存在跨代引用。当发生 Minor GC 时,只有包含了跨代引用的小块内存中的老年代对象才会加入到 GC Roots 中,避免整个老年代加入到 GC Roots 中。

这里有个疑问,也有新生代引用老年代这种跨代引用,不需要在老年代也建立记忆集吗?不然回收老年代也得把整个新生代加入到 GC Roots中。

看书里也有说只有 CMS 垃圾收集器存在单独回收老年代的情况,那其他垃圾收集器是在回收新生代的时候知道的有哪些新生代对老年代的引用吗?

没有记忆集,那 CMS 单独回收老年代的时候是怎么处理跨代引用的?

###

除了CMS可以单独回收老年代外,其他的老年代收集器做的都是Full GC,也就是整个堆的GC

CMS 在回收老年代时也是会扫描新生代的的,只是不收集新生代里死掉的对象罢了

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • elementUI表单Object.assign处理后无法

    elementUI表单Object.assign处理后无法

  • nacos作为配置中,有时可以加载到配置

    nacos作为配置中,有时可以加载到配置

  • font-spider压缩字体后,文件大小没有

    font-spider压缩字体后,文件大小没有

  • Vue SSR babel node_modules中的一个包

    Vue SSR babel node_modules中的一个包

腾讯云代理商
海外云服务器