- 对象优先在新生代eden区分配 (当eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC)
- 大对象直接进入老年代 (大对象:需要大量连续内存空间的Java对象,如长的字符串以及数组)
- 长期存活对象直接进入老年代(虚拟机设计了一个对象年龄计数器,每经过一次MInor GC 年龄+1,该阀值为15)
- 动态对象年龄判断 (如果survivor区相同年龄所有对象大小的总和大于survivor区空间的一半,年龄>=该年龄的对象在Minor GC时将直接进入到老年代)
- 空间分配担保 (当Minor GC时如果存活对象过多,无法放在survivor区,就会向老年代借用内存存放对象,以确保成功完成Minor GC)
Java内存是怎么分配的
猜你喜欢
转载自blog.csdn.net/weixin_39590058/article/details/87915736
今日推荐
周排行