内存分配策略
优先分配到Eden
如果有大对象可能分配到老年代
长期存活的对象分配到老年代
空间分配担保
动态分配年龄的判断
对象优先分配到Eden
数组进行模拟
Eden:s0 :s1 =8:1:1
Eden是8M内存 连续放入三个2M的文件 第四个是 6M的内存 然后 需要把这六回收掉。
大对象直接进入老年代内存
为什么?
大对象一般是字符串和数组 因为 觉得存活时间很长 而Eden 区域是使用复制算法 移动频率很高。
所以直接放入老年代对象里面。
长期存活的对象将进入老年代
年龄计数器 每次都会加一 当达到指定值15 就会进入老年代里面。
空间分配担保
从老年去借内存
逃逸分析与栈上分配
逃逸分析 :就是分析出对象的作用域
虚拟机工具:
Jstat
类装载 内存 监控 。
Jmap
VisualVM
更加出色的软件。很有实用。
性能调优
案例: