Java 13: Introduction to New Features
Java 13 is a recently launched version of Java, and there are already a lot of speculations about its features on the Internet. According to Mark Reinhold, who is the current chief architect of the Java platform, the new release circle of Java is 6 months. The question that many enthusiasts are asking is: “What is new in Java 13 released on September 17, 2019?
The main focus of our discussion today is on the new features in newly released Java 13. We will also highlight the options and features that have been reduced or removed.
Introduction to Java 13 New Features
Java Development Kit 13 or JDK 13 is the most recent variant of standard Java, which is provided as the production release. The most notable thing is that the release date of Java 13 was on September 17, 2019, and brought a slew of various features that were actually in the proposals. Let’s explore the most noteworthy features in Java Development Kit (JDK) 13.
Addition of Text Blocks
The main player among the new features of Java 13 is the addition of text blocks in the preview phase. A text block is a multi-line string literal that is appropriate for the objective of avoiding any need for the excessive and unwarranted escape sequences. It is perfect for the automatic formatting of a string with better control and proper predictability than the format for the developers. The main goal of adding text blocks is to simplify writing Java programs.
Writing for Java programs can be simpler if it is done through the easier expression of the strings across a number of lines of source code. In the case of this objective, one major concern is to circumvent escape sequences, especially for general cases. Furthermore, the use of text blocks is also perfect for improving the general readability of strings. Another major use of text blocks as the new feature of Java 13 is to support the transition from string literals. Any new construct, according to the revised provision, can express exactly the same set of strings just as a string literal and also construe the same escape sequence.
The fact that text blocks are one of the new features in Java 13 is an unexpected feature and an interesting fact. In reality, raw string literals were actually the initial proposal among all the ideas for Java 13.
Another prominent addition among the new features of Java 13 is the second preview of Switch expressions. This has been one of the most notable features in Java 12. However, there has been a very slight change in Java 13. Thus, ‘break’ has been replaced by ‘yield’, which is a value statement. The main objective of this value statement is to get one from the ‘Switch expression’.
The major goal of this improvement in Java 13 is the extension of ‘Switch’ so that it can be used as a statement or an expression. As a result, the new ‘case…->” labels without whichever fall-through or the new traditional ‘case….’ Labels with a fall-through can be used. Another prominent addition among the new features in Java 13 is the new statement for getting a value from the ‘Switch’ expression.
Replacement of Legacy Socket API
Another notable vital addition among the new Java 13 features is the replacement of the legacy socket API. This addition is a great replacement for basic implementations used by java.net.ServerSocket and java.net.Socket APIs. The main advantage here is the sophistication and simplicity in implementation with ease of maintenance and debugging. This implementation is appropriate for easily adapting to working with fibers, which are user-mode threads.
The idea of fibers is currently being discussed in the Project Loom. Since JDK 1.0, the legacy APIs have always been in existence, and they involve a mix of Java code and Legacy C. The major issue that arises with the mix of Legacy Code is in the form of difficulty in maintenance and debugging. What’s more, the Legacy implementation could possibly present a number of issues such as the native state structure used to support asynchronous closing. For this reason, you can experience porting and reliability issues as well as the need to resolve concurrency problems.
Extension of AppCDS
Extending AppCDS (application class-data sharing) for enabling vigorous archiving classes at the end of application execution involves a loaded application. In addition, the default base-layer CDS achieve will not be found in any library classes. The proposal to make this improvement has now reached the targeted stage for massive improvement in the usability of application class-data sharing. The proposal in the targeted stage is perfect for reducing the need for the users to complete trial runs when making a class list for every application.
There are many other additions in the new features of Java 13. The most notable ones are as follows:
- New String Constants for Canonical XML 1.1 URIs;
- Session Resumption minus Server-Side State in JSSE;
- Read Timeout that is configurable for CRLs;
- SunPKCS11 Provider with support for PKCS#11 v2.40;
- Support for MS Cryptography Next Generation (CNG);
- Support for Unicode 12.1.
Exceptions to Java 13 New Features
Besides the various new Java 13 features, there are also a number of exclusions. The features that are no longer supported in this new version include:
- Runtime Trace methods;
- VM option;
- Duplicated RSA services;
- Two Comodo Root CA certificates;
- awt.toolkit System Property;
- T-systems Deutsche Telekom Root CA 2 certificate.
As time goes by, the Java landscape continues to evolve. Now, you can actually get the free link for Java Development Kit 13. Continuous development can bring onward some improvements such as the objects without any identity. Some of the possible improvements that we may see in Java evolution include 64-bit addressable arrays that will support large datasets. Besides, there is also a possibility that raw string literals may also make an entry after being excluded from Java Development Kit 12. This open-source movement may gradually gain momentum, and now the new trend is that the release of the new Java version takes place every 6 months.