JVM分代回收
堆中分为两份:新生代和老年代(1:2)
新生代
新生代的内部分为了三个区域
Eden区,From区,To区[8:1:1]
当eden区内存不足时,就会使用可达性分析算法进行标记
标记eden区和from区的存活对象
将这些对象复制到to区,对eden区和from区进行清除
如果eden下次又出现内存不足
就将这些对象复制到from区,对eden区和to区进行清除
新生代->老年代
当一个对象在15次GC中都存活下来,就会晋升到老年代
MinorGC
发生在新生代的垃圾回收,暂停时间短
暂停时间:暂停所有应用程序线程,等待垃圾回收完成
MixedGC
新生代 + 老年代部分区域的垃圾回收
FullGC
新生代 + 老年代完整的垃圾回收,暂停时间长,尽量避免