Java 堆中新一代和终身一代的差异

Java 堆中新一代和终身一代的差异,java,Java,我已经读到,新一代存储新创建的对象,而终身一代存储幸存的对象。但我有一个疑问,编译器如何知道特定的对象是否会存活?它什么时候会将特定的对象放入终身世代?请引导我。年轻一代被分成3个空间 一个伊甸园空间 两个幸存者空间 总共有3个空间,其中两个是幸存者空间。每个空间的执行过程顺序如下: 大多数新创建的对象都位于伊甸园空间中 在伊甸园空间中执行一次GC后,幸存对象将移动到其中一个幸存空间 在伊甸园空间中进行GC后,这些对象被堆积到幸存者空间中,其他幸存对象已经存在 一旦一个幸存者空间已满,幸存的

我已经读到,新一代存储新创建的对象,而终身一代存储幸存的对象。但我有一个疑问,编译器如何知道特定的对象是否会存活?它什么时候会将特定的对象放入终身世代?请引导我。

年轻一代被分成3个空间

  • 一个伊甸园空间
  • 两个幸存者空间
总共有3个空间,其中两个是幸存者空间。每个空间的执行过程顺序如下:

  • 大多数新创建的对象都位于伊甸园空间中
  • 在伊甸园空间中执行一次GC后,幸存对象将移动到其中一个幸存空间
  • 在伊甸园空间中进行GC后,这些对象被堆积到幸存者空间中,其他幸存对象已经存在
  • 一旦一个幸存者空间已满,幸存的对象将移动到另一个幸存者空间。然后,已满的幸存者空间将更改为完全没有数据的状态
  • 在这些重复多次的步骤中幸存下来的对象将移动到老一代
  • 这些信息来自于。我建议读一读,以加深理解