当前位置:   article > 正文

JVM-垃圾收集器-回收过程_jvm垃圾回收过程

jvm垃圾回收过程

JDK1.8之前,JVM中堆空间可以分为新生代、老年代和永久代(1.8后永久代改为元空间,元空间不再使用堆而是使用本地内存)。
而新生代又分为一个Eden space 和两个survivor space。

1.首先,任何新对象都分配到 eden 空间。两个幸存者空间开始时都是空的。
  • 1

在这里插入图片描述

2.当 eden 空间填满时,将触发一个Minor GC(年轻代的垃圾回收)
  • 1

在这里插入图片描述

3.引用的对象将移动到第一个幸存者空间。清除 eden 空间时,将删除未引用的对象。
  • 1

在这里插入图片描述

4.在下一个Minor GC中,eden空间也会发生同样的事情。未引用的对象将被删除,
引用的对象将移动到survivor空间。但是,在这种情况下,它们被移动到第二个
survivor空间(S1)。此外,来自第一个survivor空间(S0)上最后一个次要
GC的对象的年龄递增并移动到S1。一旦所有幸存的物体都被移动到S1,S0和eden
都会被清除。请注意,我们现在在survivor 空间中有不同年龄的对象。
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

5.在下一个Minor GC 中,将重复相同的过程。然而,这一次survivor 空间切换了。
引用的对象将移动到 S0。幸存的对象已过期(未引用)。eden和S1被清除。
  • 1
  • 2

在这里插入图片描述

6.重复前面的过程,在Minor GC 之后,当老化对象达到某个年龄阈值
(在本例中为 8)时,它们将从新生代提升到老年代中。
  • 1
  • 2

在这里插入图片描述

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

在这里插入图片描述

8.因此,这几乎涵盖了新生代的整个过程。最终,将在老年代上进行Full GC,
以清理和压缩该空间。
  • 1
  • 2

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/870653
推荐阅读
相关标签
  

闽ICP备14008679号