gpt4 book ai didi

java - 是什么导致对象从新生代移动到老年代

转载 作者:搜寻专家 更新时间:2023-11-01 02:03:36 24 4
gpt4 key购买 nike

经过多次GC循环后,新生代存活下来的对象被移动到老年代的内存空间。

请澄清,Minor GC 对此负责?还是主要 GC?

最佳答案

Please clarify, Minor GC is responsible for this ? or Major GC?

他们中的任何一个都负责将对象从年轻一代移动到老一代。

查看“一般垃圾收集过程”部分@oracle garbage collection tutorial

enter image description here

总结:

  1. 首先,任何新对象都被分配到伊甸园空间。两个幸存者空间一开始都是空的。

  2. 当 eden 空间填满时,会触发次要垃圾回收

  3. 引用的对象被移动到第一个幸存者空间。清除伊甸园空间时,将删除未引用的对象。

  4. 在下一次次要 GC 中,伊甸园空间也会发生同样的事情。未引用的对象被删除,引用的对象被移动到幸存者空间。然而,在这种情况下,它们被移动到第二个幸存者空间(S1)

  5. 在下一次次要 GC 中,重复相同的过程。然而这次幸存者空间发生了变化。引用的对象被移动到 S0。幸存的对象是老化的。 Eden 和 S1 被清除。

  6. Minor GC 之后,当老化的对象达到某个年龄阈值(本例中为 8)时,它们会从年轻代提升到老年代。

  7. 随着次要 GC 不断发生,对象将继续被提升到老年代空间。

  8. 最终,将对老年代执行主要 GC,清理并压缩该空间。

关于java - 是什么导致对象从新生代移动到老年代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com