- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
经过多次GC循环后,新生代存活下来的对象被移动到老年代的内存空间。
请澄清,Minor GC 对此负责?还是主要 GC?
最佳答案
Please clarify, Minor GC is responsible for this ? or Major GC?
他们中的任何一个都负责将对象从年轻一代移动到老一代。
查看“一般垃圾收集过程”部分@oracle garbage collection tutorial
总结:
首先,任何新对象都被分配到伊甸园空间。两个幸存者空间一开始都是空的。
当 eden 空间填满时,会触发次要垃圾回收
引用的对象被移动到第一个幸存者空间。清除伊甸园空间时,将删除未引用的对象。
在下一次次要 GC 中,伊甸园空间也会发生同样的事情。未引用的对象被删除,引用的对象被移动到幸存者空间。然而,在这种情况下,它们被移动到第二个幸存者空间(S1)
在下一次次要 GC 中,重复相同的过程。然而这次幸存者空间发生了变化。引用的对象被移动到 S0。幸存的对象是老化的。 Eden 和 S1 被清除。
Minor GC 之后,当老化的对象达到某个年龄阈值(本例中为 8)时,它们会从年轻代提升到老年代。
随着次要 GC 不断发生,对象将继续被提升到老年代空间。
最终,将对老年代执行主要 GC,清理并压缩该空间。
关于java - 是什么导致对象从新生代移动到老年代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932939/
我正在预处理数据,一列代表日期,例如“6/1/51” 我正在尝试将字符串转换为日期对象,到目前为止我拥有的是: date = row[2].strip() format = "%m/%
这个问题在这里已经有了答案: How to change the base date for parsing two letter years with Java 8 DateTimeFormatt
我是一名优秀的程序员,十分优秀!