- 1 Java10 New Features And Enhancements
- 1.1 Application Data-Class Sharing
- 1.2 Parallel Full GC for G1
- 1.3 Garbage Collector Interface
- 1.4 Consolidate the JDK Forest into a Single Repository
- 1.5 Local-Variable Type Inference
- 1.6 Remove the Native-Header Generator Tool
- 1.7 Thread-Local Handshakes
- 1.8 Time-Based Release Versioning
- 1.9 Root Certificates
- 1.10 Heap Allocation on Alternative Memory Devices
- 1.11 Experimental Java-Based JIT Compiler
- 1.12 Additional Unicode Language-Tag Extensions
- 1.13 Removed Features and Options in Java 10
- 1.14 Deprecated Features and Options in Java 10
- 1.15 Final Thoughts
Java10 New Features And Enhancements
Oracle has recently delivered the new Java 10 within the previously announced deadline. It is a feature release of the Java SE platform, which got released on March 20, 2018. It contains various new features and enhancements into many functional areas. Some of its key improvements include enhancements for garbage collection and compilation as well as local variable types.
Georges Saab, vice president of Software Development in Oracle’s Java Platform Group, said that “Oracle is committed to rapidly evolving and delivering new innovations in the Java platform – this being the first in our newly adopted release cycle and licensing model. We’re especially proud of the simplicity of this release, which introduces useful new features, removes unnecessary elements, and is easy for developers to use.”
Java 10 is scheduled to be a short-term release, and its public updates are slated to end in six months. Moreover, JDK 11 will be the next long-term support (LTS) version of Java, which is due in September.
You can download Java 10 by clicking here.
Let’s take a sneak peek into what new features are in Java 10.
These features are defined through the JDK Enhancement Proposals (JEP) process and are mentioned below.
Application Data-Class Sharing
This JEP extends the existing Class-Data Sharing (“CDS”) feature for allowing application classes to be placed in the shared archive in order to improve startup and footprint.
Parallel Full GC for G1
It improves G1 worst-case latencies by making the full GC parallel.
Garbage Collector Interface
It will improve the source code isolation of different garbage collectors by introducing a clean garbage collector (GC) interface.
Consolidate the JDK Forest into a Single Repository
It will combine the numerous repositories of the JDK forest into a single repository to simplify and streamline development.
Local-Variable Type Inference
It will enhance the Java Language to extend type inference to declarations of local variables with initializers and also introduces var to Java, something that is common in other languages.
Remove the Native-Header Generator Tool
It will remove the javah tool from the JDK, since it has been superseded by superior functionality in javac.
It introduces a way to execute a callback on threads without performing a global VM safepoint. Makes it both possible and cheap to stop individual threads and not just all threads or none.
Time-Based Release Versioning
It revises the version-string scheme of the Java SE Platform and the JDK, and related versioning information, for present and future time-based release models.
It provides a default set of root Certification Authority (CA) certificates in the JDK.
Heap Allocation on Alternative Memory Devices
It enables the HotSpot VM to allocate the Java object heap on an alternative memory device, such as an NV-DIMM, specified by the user.
Experimental Java-Based JIT Compiler
It enables the Java-based JIT compiler, Graal, to be used as an experimental JIT compiler on the Linux/x64 platform.
Additional Unicode Language-Tag Extensions
It will enhance the java.util.Locale and related APIs to implement additional Unicode extensions of BCP 47 language tags.
Removed Features and Options in Java 10
This will describe the APIs, features, and options that were removed in Java SE 10 and JDK 10. It may also identify potential compatibility issues that you could encounter when migrating to JDK 10.
Deprecated Features and Options in Java 10
This will describe the deprecated APIs, features, and options that have been identified as deprecated in this release and are subject to removal from future versions of Java SE and the JDK. They should be used with that possibility in mind.
For additional changes and information about this release, you can refer to this.
So overall, it seems that Java 10 is not exactly a cause for alarm, as it doesn’t contain any major changes or improvements. However, it represents the first release in the new, more frequent, and gradual release cycle. It’s impressive enough that Java 10 was delivered as-promised and Just-in-Time like its compiler. The coming time will tell whether the Java community will accept the new delivered model” For developers, it is much more useful than its previous versions.