首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当eden已满但其中的所有对象都是活动的时,会发生什么情况

当eden已满但其中的所有对象都是活动的时,会发生什么情况
EN

Stack Overflow用户
提问于 2020-09-23 20:27:30
回答 1查看 78关注 0票数 0

我正在学习Java内存管理,这是我从互联网上学到的。

当Eden空间已满时,Minor GC被触发,Minor GC会将仍被引用的对象复制到一个空的幸存空间,但该空间小于Eden,当eden充满活动对象时,收集器会做什么?AFAIK,Java GC收集器正在复制收集器,它应该将所有活动对象移走,然后清除旧的内存空间。

EN

回答 1

Stack Overflow用户

发布于 2020-09-23 22:57:27

次要GC在Eden空间已满时触发

几乎是正确的。当触发主要GC时,可以触发次要GC。就像GC说的:“我需要做一个完整的GC,但首先我会做一个小的”。在这种情况下(例如,G1就是这样做的),Eden space可能不会满。

当这种情况发生时(一些Eden区域无法完全疏散),这些区域就会变得陈旧,就像here所评论的那样

疏散失败的

区域始终是旧的...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64027972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档