宁陵做网站的公司,北京西站,江苏住房和城乡建设厅官方网站,青岛新城世纪网站建设公司导航 一. 垃圾收集算法详解1. 分代收集算法2. 标记-复制算法3. 标记-清除算法4. 标记-整理算法二. 垃圾收集器详解1. Serial收集器2. Parallel Scavenge收集器3. ParNew收集器4. CMS收集器三. 垃圾收集底层三色标记算法实现原理1. 垃圾收集底层使用三色标记算法的原因?2. 垃圾… 导航 一. 垃圾收集算法详解1. 分代收集算法2. 标记-复制算法3. 标记-清除算法4. 标记-整理算法 二. 垃圾收集器详解1. Serial收集器2. Parallel Scavenge收集器3. ParNew收集器4. CMS收集器 三. 垃圾收集底层三色标记算法实现原理1. 垃圾收集底层使用三色标记算法的原因?2. 垃圾收集器使用三色标记算法的步骤3. 多标-浮动垃圾4. 漏标-读写屏障 四. CMS并发清理阶段会误删新生成的对象吗?五. 从Hotsport源码级别讲透读写屏障彻底理解三色标记1. 写屏障2. 写屏障实现原始快照(SATB)3. 写屏障实现增量更新4. 读屏障5. 记忆集和卡表 一. 垃圾收集算法详解 1. 分代收集算法 根据对象存活周期的不同将内存分为几块。一般将堆分为新生代和老年代,根据不同年代的特点选择合适的垃圾收集算法。 如在新生代中,每次GC都会有大量的对象(99%)死去,所以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。 如老年代中对象的存活几率是非常高的,而且没有额外的空间进行分配担保,所以选择“标记-清除”或“标记-整理”算法进行垃圾收集。 注意:“标记-清除”或“标记-整理”算法会比复制算法慢10倍以上。
2. 标记-复制算法 将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。 优缺点: 效率高,但是只能使用在年轻代,不能使用在老年代中,老年代中大多数的对象都是存活的,没有多余的担保空间来将内存一分为二。
3. 标记-清除算法 算法分为“标记”和“清除”阶段:标记存活的对象,统一回收所有未被标记的对象(一般选择这种);也可以反过来,标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 优缺点: 效率问题(如果需要标记的对象太多,效率不高) 空间问题(标