java CMS GC
Young GC
Young GC (Minor GC):
垃圾回收算法:Copying
1.一个新创建的对象,首先会被存储在新生代的Eden 中,Eden空间不足时,GC,将存活的对象(仍然被引用的)从 Eden 移动到 Survivor1;
2.Survivor1空间不足时,GC,将Eden和Survivor1中存活的对象,移动到Survivor2,如果Survivor2空间不足,则全部移动到老年代;
3.Survivor2空间不足时,GC,将Eden和Survivor1中存活的对象,移动到Survivor1,如果Survivor1空间不足,则全部移动到老年代;
Full GC
老年代GC(Major GC / Full GC):
垃圾回收算法:Mark-Compact
相对于 Java 垃圾回收过程,老年代是对象生命周期的最后阶段。Major GC 扫描老年代的垃圾回收过程。如果实例不再被引用,那么它们会被标记为回收,否则它们会继续留在老年代中。
垃圾回收算法
Mark-Sweep(标记-清除)算法
缺点:内存碎片
Copying(复制)算法
缺点:能够使用的内存缩减到原来的一半。
Mark-Compact(标记-整理)算法
一般厂商JVM中老年代GC就是使用的这种算法,由于老年代的特点是每次回收都只回收少量对象。