垃圾收集器整理&Java8默认垃圾回收器

垃圾收集器整理

1.Serial 垃圾收集器(单线程、复制算法)

2.ParNew 垃圾收集器(Serial+多线程)

3.Parallel Scavenge 收集器(多线程复制算法、高效)
自适应调节策略也是 ParallelScavenge 收集器与 ParNew 收集器的一个
重要区别。

4.Serial Old 收集器(单线程标记整理算法 )

5.Parallel Old 收集器(多线程标记整理算法)

6.CMS 收集器(多线程标记清除算法)
最主要目标是获取最短垃圾回收停顿时间

7.G1 收集器
相比与 CMS 收集器,G1 收集器两个最突出的改进是:

  1. 基于标记-整理算法,不产生内存碎片。
  2. 可以非常精确控制停顿时间,在不牺牲吞吐量前提下,实现低停顿垃圾回收。

问题: java默认垃圾回收器是什么?

垃圾收集器整理&Java8默认垃圾回收器_第1张图片
image.png
1.java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4294967296 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
2.jps
81413 SgupPlatformApplication
81412 Launcher
80585 Launcher
81433 Jps
80541 
80574 Launcher
3.jinfo -flag UseParallelOldGC 81413(进程号)
-XX:+UseParallelOldGC

那为什么不是Parallel Scavenge +Serial Old组合?
原因是:如果指定了-XX:+UseParallelGC参数,并行压缩默认是启用的。可以使用-XX:-UseParallelOldGC来禁用该功能。 也就是说当指定了参数-XX:+UseParallelGC,则默认也指定了-XX:+UseParallelOldGC。即默认使用了 Parallel old垃圾收集器。

总结: java8默认使用的应该是 Parallel Scavenge + Parallel Old

你可能感兴趣的:(垃圾收集器整理&Java8默认垃圾回收器)