内存分配与回收策略

java的内存分配和回收,往大方向上讲,就是在java堆上进行的分配与回收。大多数是分配在Eden区,少部分可以直接分配在老年代。具体如何分配,取决于选择的垃圾收集器以及配置的JVM参数。

java堆分区图

在这里插入图片描述

堆内存分配jvm相关参数介绍

参数作用
-XX:SurvivorRatio新生代和老年代的空间比例
-Xmsjava堆初始内存
-Xmxjava堆最大内存
-Xmn分给新生代的内存

分代晋升图

Minor GC
Minor GC
否 年龄+1
开始
是否大于新生代分配阈值
老年代
Eden区
到达老年代年龄值

对象大于survivor区剩余大小
survivor区
到达老年代年龄值

Survivor空间中相同年龄所有对象大小的
总和大于Survivor空间的一半

测试代码显示:Survivor区剩余空间小于等于50%时,年龄最大的一代进入老年代

分代JVM参数介绍

参数作用备注
-XX:PretenureSizeThreshold新生代分配阈值,对象大于次值直接进入老年代只对Serial和ParNew收集器有效
-XX:MaxTenuringThreshold年龄大于此值进入老年代默认为15

测试代码
Github博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值