Since Oracle will no longer offer a JDK version with free updates beyond the release of the next major version, a few other organizations have stepped in to help out.
They have built their own OpenJDK builds, using the same codebase as Oracle’s OpenJDK. Unlike Oracle, however, they would commit to providing support for a longer period of time, at least for Long Term Support (LTS) releases.
Contents
Features in JDK 17
Major new features in Java 17 include sealed classes, macOS AArch64 support, context-specific deserialization filters, and advanced pseudo-random number generator. Also in the version in preview or incubator mode there are Pattern Matching for switches (preview), Foreign Function & Memory API (incubator) and Vector API (second incubator). Sealed classes were introduced in preview in Java 15.
Calling out features that stood out to him – both new in Java 17 and previously introduced in prereleases – Ritter listed text blocks, matching of the model for instanceof, records, sealed classes, pattern matching on switch and the switch expression.
Should you jump on the Java 17 hype-train?
As painful as some migrations are sometimes, it might be a good idea to migrate to Java 17. Of course, this depends on how many dependencies you have. We mentioned that Java17 offers better performance and better optimization in terms of code. Imagine being able to provide the same functionality with less code. Also, the code would be more readable for other developers. This is a huge plus as some dependencies stop supporting certain Java versions.
In conclusion, if you are using Java 8, I strongly recommend you migrate to Java 11. If, however, you are using Java 11, I suggest you review the changes thoroughly. If the upgrade is easy and you will benefit from the newly introduced features, feel free to do so. Remember that as software engineers, time is our most precious resource. If it would take too long and provide no benefit, migration would not be necessary. At least, not for now.
Java 12: Compact number formatting
CompactNumberFormat is a concrete subclass of NumberFormat that formats a decimal number into its compact form based on patterns provided by a given locale.
The locale parameter is responsible for providing appropriate format templates. Format style can be SHORT or LONG. For a better understanding of format styles, let’s consider the number 1000 in the US localization. The SHORT style would format it as “10K”, and the LONG style would format it as “10K”.
What is Java 11?
Java 11 has been available since September 25, 2018. Java 11 is an open source implementation of the java 11 SE platform. Java 11 is released after four years since java 8 version release. Java 11 included more features which were not available in java 8. Java 11 contains new features which provide more functionality. Java 11 introduced multiple new features that were not available in java 8.
Java 11 introduced modularity feature, but it is not available in java 8. It is the biggest change added in java 11. Using the modularity feature we can divide our application or code into multiple modules. It will allow us to easily test our application and it also manages access.