Java 8的默认垃圾收集器是什么?
当我检查JMX Beans时,他们将它显示为新一代的并行收集器和旧一代的旧串行收集器。
答案 0 :(得分:98)
默认垃圾收集器:
答案 1 :(得分:70)
选择默认垃圾收集器(以及其他内容)就是所谓的JVM的ergonomics进程。此过程取决于您的机器类别。
由于几乎所有机器都有2个或更多CPU,因此JVM几乎总是将机器视为服务器级。这就是为什么你会发现很多引用都考虑到并行收集器是默认的垃圾收集器。
答案 2 :(得分:32)
Java有四种类型的垃圾收集器(直到版本10),但是在Java 11稳定发行之后,它将是5种类型。这些是:-
S GC
P GC
CMS GC
G1 GC
ZGC
GC在Java中的默认实现-
JVM GC
Java 7 - P GC Java 8 - P GC Java 9 - G1 GC Java 10- G1 GC Java 11- Z GC(I am not sure but it would be default GC of java 11)
有关ZGC的更多详细信息,请访问
http://openjdk.java.net/projects/zgc/
https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
注意::如果要验证JVM当前正在使用哪个GC,可以执行以下命令以显示默认GC:-
$ java -XX:+PrintCommandLineFlags -version
如果要根据需要设置GC,可以通过以下命令进行。在这里,我将G1 GC设置为默认GC。
$ java -XX:+UseG1GC -XX:+PrintCommandLineFlags -version
For more details , please visit
https://javapapers.com/java/types-of-java-garbage-collectors/
https://alvinalexander.com/java/java-jvm-how-show-which-garbage-collector-running
答案 3 :(得分:-1)
从Java 9到Java 15,即使在Java 15上,G1GC也是默认的,它增加了两个新一代的Garbage收集器,一个是Oracle开发的ZGC,另一个是Sheandoah的红帽实现,都已在2020年9月15日的Java 15上投入生产。