《JVM学习》7、堆

堆的核心概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

堆的内存细分 新生代,老年代,元空间(1.8以后)

在这里插入图片描述
在这里插入图片描述

设置堆内存大小

-Xms 堆空间初始值大小 -Xmx堆空间最大值

在这里插入图片描述
在这里插入图片描述

代码方式查看

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
打印信息
在这里插入图片描述

OOM举例

在这里插入图片描述
在这里插入图片描述
old区满了 会OOM

年轻代与老年代

在这里插入图片描述
新老生代 默认比例
在这里插入图片描述
伊甸园区和幸存者区比例
在这里插入图片描述
在这里插入图片描述

对象分配过程

在这里插入图片描述在这里插入图片描述

图解对象分配过程

在这里插入图片描述

在这里插入图片描述

to区作用:下次GC的时候伊甸园区的数据存放位置。

默认经历15次GC之后(也有特殊情况),如果还在使用就要放到old区
在这里插入图片描述

注意:幸存者区不会触发YGC或MinorGC,只有区满了才会把幸存者区一起回收,被动回收。

总结

在这里插入图片描述

特殊情况

在这里插入图片描述

常用调优工具

在这里插入图片描述

Minor GC 、 Major GC 与 Full GC

在这里插入图片描述

Minor GC触发机制

在这里插入图片描述

Major GC/Full GC 触发机制

在这里插入图片描述
在这里插入图片描述

堆空间分代思想

在这里插入图片描述
在这里插入图片描述

内存分配策略

在这里插入图片描述
在这里插入图片描述

对象分配过程 TLAB

Thread Local Allocation Buffer

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

堆空间参数设置小结

在这里插入图片描述

堆是对象存储的唯一选择吗?

在这里插入图片描述

逃逸分析

如何判断是否发现了逃逸分析,就看方法里new的对象是否在方法外被调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逃逸分析:代码优化
1.栈上分配

在这里插入图片描述

2.同步省略

在这里插入图片描述
在这里插入图片描述

3.分离对象或标量替换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本章小结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pywanggui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值