说一下JVM中的分代回收
一、堆的区域划分
1. 堆被分为了两份: 新生代和老年代【1:2】
2. 对于新生代, 内部又被分为了三个区域。Eden区, 幸存者区survivor(分成from和to)【8:1:1】
二、对象回收分代回收策略
1. 新创建的对象, 都会先分配到eden区
2. 当伊甸园内存不足, 标记伊甸园与from(现阶段没有)的存活对象
3. 将存活对象采用复制算法复制到to中, 复制完毕后, 伊甸园和from内存都得到释放
4. 经过一段时间后伊甸园的内存又出现不足, 标记eden区域to区存活的对象, 将其复制到from区
5. 当幸存区对象熬过几次回收(最多15次), 晋升到老年代(幸存区内存不足或大对象会提前晋升)
MinorGC、Mixed GC、FullGC的区别是什么?
● MinorGC【young GC】:发生在新生代的垃圾回收, 暂停时间短(STW)
●Mixed GC:新生代+老年代部分区域的垃圾回收, G1收集器特有
●FwllGC: 新生代+老年代完整垃圾回收, 暂停时间长(STW),应尽力避免