来源:https://my.oschina.net/polly/blog/2873791
三句话捋清楚java垃圾收集器

  • 无论 -XX:+UseParallelGC 还是 -XX:+UseParallelOldGC ,新生代都是 ParallelGC,即 Parallel Scavenge,区别在于年老代,前者是串行,后者是并行。
  • 无论 -XX:+UseConcMarkSweepGC 还是 -XX:+UseParNewGC ,新生代都是ParNew,区别在于年老代,前者是CMS(当然,他失败了就会执行serialold),后者是串行。
  • -XX:+UseSerialGC 和 -XX:+UseG1GC 就好理解了,前者都是串行,后者都是G1。


再说三句:

  • UseParNewGC java8 已废弃
  • UseConcMarkSweepGC java9已废弃
  • 总结前两句,ParNew不受待见,再说多你就晕了。

不要说jdk x默认的垃圾收集器是什么,与jdk发行版有关,同样的代码使用jdk8同一子版本测试在mac是parallel,在centos是serial。

java version "1.8.0_151"Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
相关文章