首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >永恒充满,伊甸园空:物体能被移动到伊甸园吗?

永恒充满,伊甸园空:物体能被移动到伊甸园吗?
EN

Stack Overflow用户
提问于 2018-08-22 10:25:03
回答 1查看 66关注 0票数 0

我试图了解Java中的GC是如何工作的,我想知道在以下情况下会发生什么:

  1. 伊甸园:差不多满了,Surivor1:一些最低限度的利用率,Surivor2:空的,终身的:几乎满的。
  2. 我们试图分配一些对象,这些对象不适合于伊甸园的自由空间。
  3. GC启动:尝试将Eden+Survivor1重新打包到Survivor2中。大多数对象被删除,但仍然没有足够的空间。溢出效应试图延长期限。
  4. 终身监禁也没有足够的空间来保持所有溢出效应。

此时,在删除死对象之后,伊甸园可能已经有了足够的空间。Java能利用这个自由空间吗?

在这个问题中,我没有考虑G1垃圾收集器。

EN

回答 1

Stack Overflow用户

发布于 2018-08-23 07:34:23

在您描述的情况下,典型的GC算法(因为您不询问特定的GC算法)将导致主要GC尝试并在旧的gen (终身空间)中回收空间,以允许从Eden/survivor空间中提升对象。

如果这不能回收足够的空间来支持年轻一代的GC完成,那么您将得到一个OutOfMemoryException。

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

https://stackoverflow.com/questions/51964794

复制
相关文章

相似问题

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