堆
堆的核心概述




堆的内存细分 新生代,老年代,元空间(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.分离对象或标量替换



本章小结

9万+

被折叠的 条评论
为什么被折叠?



