最基本的java回收算法宝包括:复制算法和标记清理算法
基本概念
(1)复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B;
(2)标记清理算法:一块区域,标记可达对象(可达性分析),然后回收不可达对象,会出现碎片,那么引出 标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象;
(3)新生代:初始对象,生命周期短的;
(4)老生代:长时间存在的对象;
不同收集器使用的垃圾回收算法
(1)Serial New收集器是针对新生代的收集器,采用的是复制算法
(2)Parallel New(并行)收集器,新生代采用复制算法,老年代采用标记整理
(3)Parallel Scavenge(并行)收集器,针对新生代,采用复制收集算法
(4)Serial Old(串行)收集器,新生代采用复制,老年代采用标记整理
(5)Parallel Old(并行)收集器,针对老年代,标记整理
(6)CMS收集器,基于标记清理
(7)G1收集器:整体上是基于标记 整理 ,局部采用复制
综上:新生代基本采用复制算法,老年代采用标记整理算法。cms采用标记清理。
转自:
https://www.nowcoder.com/test/question/done?tid=20023356&qid=36411#summary
表示感谢!!!