对象优先在 Eden 区分配
对象优先分配在新生代,如果分配对象时新生代内存不足,则触发minor GC,如果内存还是不足,对象放不下,则将对象放入老年代
minor GC major GC/full GC
- minor GC:发生在新生代的GC,回收比较频繁,速度比较快。
- full GC/major GC:是指发生在老年代GC,full GC的发生至少伴随一次minor GC。full GC耗时是minor GC十倍以上。
大对象直接进入老年代
minor GC是发生频繁的,新生代是使用标记复制算法。若大对象在新生代,则会频繁出现大量内存复制,影响性能。大对象直接进入老年代。
长期存活的对象进入老年代
jvm的垃圾回收中有一个将新生代对象移动到老年代的晋升机制。 jvm有个记录对象年龄的计数器,当每次新生代对象经历minor GC存活下来的对象年龄+1,当对象年龄到达15,则对象晋升到老年代