JDK 12 enters Rampdown Phase Two
JDK 12 entered Rampdown Phase Two which basically means that the lineup is set – JDK 12 is locked in with 8 features, however, there are some fixes introduced since Phase One. The general release is due in March.
More than a month ago, JDK 12 entered Rampdown Phase One which basically means that the overall feature set is frozen and no further JEPs will be targeted to this release.
Here are the fixes introduced since Phase One:
The schedule for JDK 12 is as follows:
2018/12/13 Rampdown Phase One (fork from main line)
2019/01/17 Rampdown Phase Two
2019/02/07 Release-Candidate Phase
2019/03/19 General Availability
Update December 14, 2018
JDK 12 is certain to have 8 features and one that is proposed to get dropped from the JDK. Let’s have a quick look at the features list.
JDK 12 features
JEP proposed to drop from JDK 12
326: Raw String Literals (Preview) — Review ends: 2018/12/18
Add raw string literals to the Java programming language. A raw string literal can span multiple lines of source code and does not interpret escape sequences, such as
\n, or Unicode escapes, of the form
\uXXXX. This will be a preview language feature.
JEPs targeted to JDK 12
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.
230: Microbenchmark Suite
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.
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 will be a preview language feature.
334: 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.
Remove all of the sources related to the arm64 port while retaining the 32-bit ARM port and the 64-bit aarch64 port.
341: 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.
Make G1 mixed collections abortable if they might exceed the pause target.
Enhance the G1 garbage collector to automatically return Java heap memory to the operating system when idle.