Are you wondering what the default Java Garbage Collection algorithm is? It depends on 3 factors:
- Who is your JVM Vendor (i.e., OpenJDK, OpenJ9, Azul …)?
- What version of Java are you running (i.e. Java 8, 11, 17…)?
- What class of JVM you are running (i.e. client or Server)?
Below table summarizes the default garbage collection algorithms for OpenJDK:
| Java Version | Default GC for Client-Class Machines | Default GC for Server-Class Machines |
|---|---|---|
| Java 1.2 – 4 | Serial GC | Serial GC |
| Java 5 (1.5) | Serial GC | Parallel GC |
| Java 6 | Serial GC | Parallel GC |
| Java 7 | Serial GC | Parallel GC |
| Java 8 | Serial GC | Parallel GC |
| Java 9 | G1 GC | G1 GC |
| Java 10 | G1 GC | G1 GC |
| Java 11 | G1 GC | G1 GC |
| Java 12 | G1 GC | G1 GC |
| Java 13 | G1 GC | G1 GC |
| Java 14 | G1 GC | G1 GC |
| Java 15 | G1 GC | G1 GC |
| Java 16 | G1 GC | G1 GC |
| Java 17 | G1 GC | G1 GC |
| Java 18 | G1 GC | G1 GC |
| Java 19 | G1 GC | G1 GC |
| Java 20 | G1 GC | G1 GC |
| Java 21 | G1 GC | G1 GC |
| Java 22 | G1 GC | G1 GC |
Besides the above-mentioned Serial GC, Parallel GC and G1 GC default algorithms, following algorithms are also available in OpenJDK: CMS GC, Shenandoah GC, ZGC, Epsilon GC. By following the tips given in this post, you can choose the right GC algorithm for your application.


July 10, 2025 at 8:41 am
Nice!