Java 12

Release notes - Specification - JEPS

JEP Name Category Summary
230 JEP detail Microbenchmark Suite
Tools
Add a basic suite of microbenchmarks to the JDK source code, and make it easy for developers to run existing microbenchmarks and create new ones.
189 JEP detail Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
Garbage Collector
Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB.
334 JEP detail JVM Constants API Introduce an API to model nominal descriptions of key class-file and run-time artifacts, in particular constants that are loadable from the constant pool.
341 JEP detail Default CDS Archives Enhance the JDK build process to generate a class data-sharing (CDS) archive, using the default class list, on 64-bit platforms.
344 JEP detail Abortable Mixed Collections for G1
Garbage Collector
Make G1 mixed collections abortable if they might exceed the pause target.
346 JEP detail Promptly Return Unused Committed Memory from G1
Garbage Collector
Enhance the G1 garbage collector to automatically return Java heap memory to the operating system when idle.
340 JEP detail One AArch64 Port, Not Two
Pruning
Remove all of the sources related to the arm64 port while retaining the 32-bit ARM port and the 64-bit aarch64 port.

Preview only

JEP Name Category Summary
325 JEP detail Switch Expressions (Preview)
Language
Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a "traditional" or "simplified" scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch. This is a preview language feature in JDK 12.