JVM立即回收机制

Jvm垃圾回收机制

一、垃圾回收对象

根搜索算法:判断对象存活还是非存活的算法

根对象:栈内存中直接引用的对象

二、垃圾回收算法

1.标记-清除算法

特点:标记完成后,统一回收

缺点:会产生大量不连续的内存碎片

2.标记-压缩算法

特点:标记后将存活对象移动到一起,清除以外的内存

老年代使用此算法

3.复制算法

特点:将内存分为两半,一般使用完,将存活对象,转移到另外一半内存,清理原内存

缺点:内存使用率低

新生代使用此算法

4.分代收集算法

新生代采用复制算法

老年代采用标记-压缩算法

三、垃圾回收器

1. Serial收集器(串行)

单线程收集器

用户线程全部停止(Stop the world)

Client模式下,新生代默认收集器

优点:简单、高效

2.ParNew收集器(并行)

并行收集器,Serial收集器的多线程版本

Server模式下Jvm默认的新生代收集器

默认开启的垃圾回收线程与cpu核数一致

3.CMS收集器(并发)

并发收集器(ConcurrentMarkSweep)

采用了标记-清除、标记-压缩算法

并发收集、低停顿

缺点: 消耗cpu、会产生内存碎片、浮动垃圾(Concurrent Mode Failure)

4.G1(时间优先)

posted @ 2023-06-27 17:10  常疯大虾  阅读(15)  评论(0编辑  收藏  举报