java8默认的垃圾收集器是什么?

1,272 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 12 天,点击查看活动详情

java8默认的垃圾收集器是什么?

现在已经是2023年了,但是有多少公司多少同学还在使用着 java8,还没有升级到最新的版本,更或者都没有升级到 java11,现在大部分还在使用着的 java8 它的虚拟机是用的什么呢?它使用的垃圾收集器使用的又是什么呢?

java8 使用的虚拟机

在java8 中大部分使用的虚拟机是 Hotspot JVM 虚拟机

使用的垃圾收集器

在java8的 Hotspot JVM 中,默认情况下使用的是并行的垃圾收集器名称叫做 Parallel GC,垃圾回收器它不止只有一个。
在 Hotspot 中使用 Parallel GC 回收器的时候它同时也使用了 Parallel Scavenge 多线程的并行的垃圾回收器去回收新生代的垃圾,它的特点呢有以下几点
1、并行,多线程
2、标记复制算法
3、专注于吞吐量,特点
4、悲观策略
5、针对的是年轻代的回收\

与之有 Parallel Old 去对应着去进行回收老年代的,针对于它同样也有以下几种特点
1、对比与Parallel Scavenge GC,它修改了针对于Old区的回收算法
2、Old 回收时,分阶段进行回收:标记、分析、压缩
3、分区域进行压缩,而不是对所有Old进行压缩
4、多线程,并行
5、在内存整理上也是采用压缩算法

image.png

当然不只是只有 HotSpot JVM 一个虚拟机实现,其他还有很多虚拟机的实现,但是其它厂商提供的 JDK8 基本上也默认使用并行垃圾收集器也就是 Parallel GC。
一般为什么都使用它呢,因为 Parallel GC 它是一个并行的多线程的垃圾回收器,多线程就代表着它的性能不会很差,同时呢使用 Parallel GC 作为垃圾收集器呢在系统的吞吐量是最优的。