Updating to Java 12? Or waiting for the next LTS version?
With the new release cycle, some people are holding out to update until the next long-term support version of Java is released. However, some early adopters jump right on board and explore the new enhancements right away. Which one are you? We want to know more about our readers. What version of Java are you currently using? Let us know!
By now, we’ve shouted about the Java 12 release loud enough from the rooftops that everyone and their neighbor knows. But just in case you haven’t heard, JDK 12 is here and offers plenty of new enhancements. It reached general availability on March 19, 2019.
Have you hopped on board Java 12?
Of course, JDK 12 is not a long-term support version. With the new faster Java release cadence, every six months an update will introduce features. (View Oracle’s roadmap to see when support for previous versions ends.)
However, these new releases don’t make the previous version obsolete as they did in the past. This means that you can stay with your long-term support version, or hop on board the latest version and see what’s new. Long-term support releases are now every three years, while new features release every six months. That fast-paced cycle gives you a lot of options when it comes to deciding when to upgrade.
JDK 12: What does it bring to the table?
This is a smaller upgrade when compared to JDK 10 which brought 10 enhancements and JDK 11, which gave us seventeen enhancements.
Latest additions include:
- JEP 189: Shenandoah. An experimental low-pause time garbage collector, tested and developed by Red Hat. This GC is designed to work with large heaps.
- JEP 30: Microbenchmark suite. A basic suite of microbenchmarks that make it easy to run existing microbenchmarks or create new ones.
- JEP 325: Switch expressions. Get a preview of this feature as Java prepares to support pattern matching.
- JEP 334: JVM constants API. Check out a snapshot of this API.
- JEP 340: One AArch 64 port, not two. This removes all of the sources related to the
arm64port, while retaining the 32-bit ARM port and the 64-bit
- JEP 341: Default CDS archives: Improve out-of-the-box start up time.
- JEP 344: Abortable mixed collections. Make G1 mixed collections abortable if they might exceed the pause target.
- JEP 346: Promptly return unused committed memory from G1: Just what it says on the box. This enhances the G1 garbage collector.
It also includes support for Unicode 11, which introduced 684 new characters (counting 66 emoji).
Overall, none of these enhancements are going to change the way you use the JDK too much. However, it includes quality of life upgrades, a new GC, and the new
switch expression preview.
When we spoke with Donald Smith, Senior Director and Product Management for Java at Oracle, he had this to say about the new features:
…the feature I’m most keen on in this release is Switch Expressions, which will give developers a chance to clean up some of the massive switch statements and convoluted if-then-else blocks that can make code quite hard to follow.
Adopting Java 12?
So, give us the scoop. Are you an early JDK adopter? We wanna know what version of Java our readers are using!
Are you upgrading to Java 12?
Help us out and answer our poll.