堆内存划分(新生代、老年代)

Java堆内存分为新生代和老年代,新生代进一步细分为Eden、From Survivor和To Survivor区。新生代使用复制算法进行Minor GC,对象在达到一定年龄或大小后进入老年代。老年代使用标记-整理算法进行Full GC,其频率低于Minor GC,但耗时更长。
摘要由CSDN通过智能技术生成

在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:EdenFrom SurvivorTo Survivor

这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。

堆的内存模型大致如下图所示:

 

从图中可以看出: 堆大小 = 新生代 + 老年代

默认情况下:

新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2

Eden : from : to = 8 : 1 : 1

JVM 每次只会使用 Eden 和其中的一块 Survivor 区域来为对象服务,所以无论什么时候,总是有一块 Survivor 区域是空闲着的。

因此,新生代实际可用的内存空间为 9/10 ( 即90% )的新生代空间。

Java 中的堆也是 GC 收集垃圾的主要区域。GC 分为两种:Minor GC、Full GC ( 或称为 Major GC )。

 

Minor GC

Minor GC 是发生在新生代中的垃圾收集动作,所采用的是复制算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mushroom-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值