Java专题二十二:垃圾回收(GC)

时间:2020-06-15 17:25:41   收藏:0   阅读:53

Java专题二十二:垃圾回收(GC)

22.1. 垃圾回收算法

22.1.1. 复制算法

复制算法将内存按容量划分为大小相等的两块,每次只使用其中的一块,当这一块内存用完了,就将还存活着的对象复制到另一块上面,然后再把已经使用过的内存空间一次清理掉

22.1.2. 标记-清除算法

标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段

22.1.3. 标记-整理算法

标记-整理算法与标记-清除算法类似

22.1.4. 分代收集算法

根据对象存活周期的不同将内存划分为新生代和老年代,又根据其特点采用不同收集算法,一般情况如下:

22.2. 垃圾回收器

22.2.1. Serial收集器

22.2.2. ParNew收集器

多线程版本的Serial收集器

22.2.3. Serial Old收集器

22.2.4. Parallel Scavenge收集器

22.2.5. Parallel Old收集器

22.2.6. CMS收集器

CMS收集器(Concurrent Mark Sweep)

22.2.7. G1收集器

将内存分为多个大小相同的区域Region,每个Region拥有各自的分代属性(新生代、存活代、老年代)
G1对于每个Region都维护一个Remembered Set,用于记录对象引用的情况。当GC发生的时候根据Remembered Set的引用情况去搜索

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!