JVM分代回收

JVM分代回收

堆中分为两份:新生代和老年代(1:2)

新生代

新生代的内部分为了三个区域

Eden区,From区,To区[8:1:1]

当eden区内存不足时,就会使用可达性分析算法进行标记

标记eden区和from区的存活对象

将这些对象复制到to区,对eden区和from区进行清除

如果eden下次又出现内存不足

就将这些对象复制到from区,对eden区和to区进行清除

新生代->老年代

当一个对象在15次GC中都存活下来,就会晋升到老年代

MinorGC

发生在新生代的垃圾回收,暂停时间短

暂停时间:暂停所有应用程序线程,等待垃圾回收完成

MixedGC

新生代 + 老年代部分区域的垃圾回收

FullGC

新生代 + 老年代完整的垃圾回收,暂停时间长,尽量避免

相关推荐
天“码”行空3 小时前
java面向对象的三大特性之一多态
java·开发语言·jvm
独自破碎E9 小时前
JVM的内存区域是怎么划分的?
jvm
期待のcode10 小时前
认识Java虚拟机
java·开发语言·jvm
leaves falling13 小时前
一篇文章深入理解指针
jvm
linweidong13 小时前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
曹轲恒14 小时前
JVM中的直接内存
jvm
BHXDML15 小时前
JVM 深度理解 —— 程序的底层运行逻辑
java·开发语言·jvm
隐退山林16 小时前
JavaEE:多线程初阶(二)
java·开发语言·jvm
期待のcode17 小时前
Java虚拟机堆
java·开发语言·jvm
alonewolf_991 天前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk