- Oracle releases JDK 13 with several improvements and new features.
- The update is claimed to improve the productivity of the developers to a great extent.
- The new release comes with features like Dynamic Archiving Class-data sharing, Preview Switch Expressions and more.
Oracle – the software giant has released Java SE and JDK 13 along with the promise to introduce more new features in the future within the six-month cycle.
The Java 13’s binaries are now available for download with improvements in security, performance, stability, and two new additional preview features ‘Switch Expressions’ and ‘Text Blocks’, specifically designed to boost developers’ productivity level. This gives the hope that the battle of Java vs Python will be won by the former.
Remarking on the new release, Oracle said: “Oracle JDK 13 increases developer productivity by improving the performance, stability and security of the Java SE Platform and the JDK,”.
This release came out coinciding with the starting of Oracle’s co-located OpenWorld and Code One conference, which took place on 16 sept’19 and extended to 17 sept’19 at San Francisco.
Speaking of the Java 13 release, it is licensed under the GNU General Public License v2 along with the Classpath Exception (GPLv2+CPE).
The director of Oracle’s Java SE Product Management, Sharat Chander stated “Oracle offers Java 13 for enterprises and developers. JDK 13 will receive a minimum of two updates, per the Oracle CPU schedule, before being followed by Oracle JDK 14, which is due out in March 2020, with early access builds already available.”
Let’s look into the new features that JDK 13 comes packed with.
New Features of JDK 13
JDK 13 supports the implementation of Java Enhancement Proposals mentioned below.
JEP 350- Dynamic Archiving Class-data sharing
The new JEP 350 is introduced to boost the usability of application class-data sharing that enables the dynamic archiving of classes after the completion of the execution of Java applications. All the archived classes will have all loaded applications and library classes, not there in the base-layer CDS archive.
JEP 351- Memory improvements
JEP 351 is a solution to problems related to memory. For instance, before the implementation of JEP 351 in JDK 13, the z garbage collector was incapable to uncommit and return memory to the operating system, even when not in use for a long time. However, with the help of JEP 351, the z garbage will be able to return unused memory to the OS.
JEP 353 – Legacy Socket API
The implementation used by the ‘java.net.Socket’ and ‘java.net.ServerSocket APIs’ has been replaced by “a simpler and more modern implementation that is easy to maintain and debug,” in the JEP 353. This change aims at making the adaption to user-mode threads or fibers easier, which is being explored in Project Loom currently.
JEP 354- Preview Switch Expressions
This new feature allows developers to use “switch” as both a statement and an expression. From now on, they will be able to employ both the traditional “case… : labels” and the new ‘case … -> labels’ (with no fall through). As a new addition to JDK 13, this feature is introduced aiming to simplify the everyday coding process and also prepare for the use of pattern matching in a switch.
JEP 355- Text blocks preview
The newly added feature of text blocks preview allows the developers to express strings that take up several code lines in a more simplified manner. With the help of this feature, it is possible to improve both the “the readability and the writeability of a broad class of Java programs to have a linguistic mechanism for denoting strings more literally than a string literal.”
Although Java is still considered among the top 10 programming languages of 2019-2020, it is expected that its value and reception will increase with this release, making it a more desirable choice for app development.