Java Versions and JVM Garbage Collectors Support Matrix

Published on 2023-10-03 Updated on 2023-10-05 Reading Time: 3 mins

Abstract

A complete garbage collection support matrix on different Java release versions. Applies to the Sun JDK, Oracle JDK (Hotspot JVM).

Full Article

It is very difficult to find a complete comparison guide on different Java releases. I've compiled a comprehensive list of supported and default garbage collectors according to the official documetation, with the most commonly used hardware configuration as of 2023. All verified independently using JVM options, JConsole and Java Mission Control.

This support matrix applies to the Sun JDK, Oracle JDK (Java Hotspot JVM) and OpenJDK implementations. For other JDK implementations, refer to the relevant official documentation.

Garbage Collectors Support Matrix

Garbage CollectorJVM / Java Version (Oracle JDK)

7u489111517
Serial
Parallel Old (Throughput)Default
Parallel New (Throughput)Default
CMS (Mostly Concurrent)DeprecatedDeprecated


G1  (Mostly Concurrent)ExperimentalExperimentalDefaultDefaultDefaultDefault
Z (64-bit only)


Experimental

Verification Environment:

Machine Type (Instruction Set): AMD64, x86-64

Memory: 32GB+

Note:

Since Java SE 5.0, the JDK launches selects a default garbage collector according to the detected hardware classification the JVM is running on. Sun / Oracle classifies machines basically into two types: client-class and server-class.

  • Client-class
    • If the host machine has a single physical processor and a single core, the default collector is the serial collector.
    • On Windows 32-bit i586: Default as client VM, regardless of the amount of physical memory
  • Server-class:
    • On all x86-64, AMD64 architecture machines
    • SPARC 32-bit, i586 machines with at least 2 CPUs and 2GB of physical memory, regardless of OS.

References: