After six months of development, Oracle announced the release of the new version of Java SE 14. This platform is used as an open source OpenJDK reference implementation. Java SE 14 maintains backward compatibility with the Java platform; All previously written Java projects will work unchanged when started with the new version.
Compilations Java SE 14 ready to install (JDK, JRE and Server JRE) are prepared for Linux (x86_64), Windows and macOS. The Java 14 reference implementation developed by the OpenJDK project is fully open under the GPLv2 license with GNU ClassPath exceptions that allow dynamic linking to commercial products.
Main new features of Java SE 14
This new version of Java SE 14 is classified as a regular support period For which updates will be released before the next version as the current stable LTS branch "Java SE 11" will have updates until 2026, while the previous Java 8 LTS branch will be supported until December 2020.
Among the main novelties of this version the experimental support of instanceof, record y experimental support pairto text blocks has been expanded.
- instanceof: It is used for the matching of patterns in the operator that allows to immediately determine the local variable to access the verified value.
- record: provides a compact way to define classes, avoiding the explicit definition of various low-level methods, such as equals (), hashCode () y toString (), in cases where the data is stored only in fields.
- Expansion in text blocks: provides a new form of string literals that allows you to include multi-line text data in your source code without using escape characters and to preserve the original text formatting in the block. Block framing is done with three double quotes.
In Java 14, text blocks support the escape sequence "\ s" to define a single space and "\" to concatenate with the next line.
We can also find that a preview version of the jpackage utility was implemented, which already allows you to create packages for standalone Java applications. The utility is based on JavaFX javapackager and allows you to create packages in native formats for various platforms (msi and exe for Windows, pkg and dmg for macOS, deb and rpm for Linux).
On the other hand it is mentioned thate a new memory allocation mechanism has been added to the G1 garbage collector, taking into account the specific characteristics of working in large systems using the NUMA architecture. The new memory allocator is enabled using the "+ XX: + UseNUMA" flag and can significantly increase performance on NUMA systems.
A preview of the external memory access API The Center allows Java applications to safely and efficiently access areas of memory outside from the Java heap by manipulating new abstractions of MemorySegment, MemoryAddress, and MemoryLayout.
Ports for Solaris OS and SPARC Processors Declared Obsolete with the intention of removing these in the future. Moving these ports to obsolete ones will allow the community to accelerate the development of new OpenJDK features without wasting time maintaining specific features for Solaris and SPARC.
Also CMS garbage collector removed (Concurrent Mark Sweep), which was obsolete two years ago and was not accompanied. Furthermore, use of a combination of garbage collection algorithms and ParallelScavenge SerialOld was declared obsolete.
Of the other changes that are mentioned in the ad:
- Tools and APIs for compressing JAR files using the Pack200 algorithm have been removed.
- Added API to track JFR events on the fly (JDK Flight Recorder), for example to organize continuous monitoring.
- The jdk.nio.mapmode module has been added, which offers new modes (READ_ONLY_SYNC, WRITE_ONLY_SYNC) to create mapped byte buffers (MappedByteBuffer) that refer to non-volatile memory (NVM).
Si you want to know more about it, you can check the announcement of this new version In the following link.