Java 9 is Finally Released, New features and Improvements

JAVA 9 Features

Java 9 has been finally released. The programming enthusiasts would be pretty relieved as Java 9 Standard Edition was previously delayed due to modularity controversy. If you are seeking for Java SE Development Kit 9 you may visit the link below:

Java 9 features: Brief overview

Project Jigsaw – Module System

So, how is this different from the last version of Java SE 8? The most effective change in Java SE 9 is the change in the form of Project Jigsaw, which is the new module system. It’s the most important feature of java, which has been criticized a lot. This feature brings modularity to JDK, runtime images, Java source code etc. In the world of Java OSGi, JARs are considered as the unit of modularity. By the way, developers can make their own modules and simplify the code

The primary goals of this project were to:

  • Make it easier for developers to construct and maintain libraries and large applications;
  • Improve the security and maintainability of Java SE Platform
    Implementations in general, and the JDK in particular;
  • Enable improved application performance, and lastly
  • Enable the Java SE Platform, and the JDK, to scales down for use in a small computing cloud and dense cloud employments


With JDK 9, now one can fire JShell from the console and go crazy with their Java code. JShell allows you to test different Java constructs without any hassle. Jshell introduces a REPL(Read-Eval-Print-Loop) environment in java when Java 9 is released. With this new style of writing Java code, you can write and test small snippets of code quickly and easily. JShell will compile and run the code there and then.

Stream API enhancements

With Stream API enhancements, Java 9 comes with added methods to conditionally take or drop items from the Stream, create a Stream from nullable value while expanding Java SE APIs, etc.

Process API Changes

With Process API improvements, Java 9 ensures that the OS process is controlled and managed in a better manner. For instance, The Runtime.getRuntime().exec() API was the only way to spawn a new process before Java 5. After which ProcessBuilder API was introduced which was better for spawning a new process.

In Java SE 9 we can now obtain a lot of information about the process via the API java.lang.ProcessHandle.Info API:

  • The commands used to start the process
  • The arguments of the command
  • Time instant when the process was started
  • Total time spent on it and the user who created it

Segmented Code Cache

With the help of Segmented Code Cache in JDK 9, the code cache can be divided into different segments. Each of those segments contains compiled code of a particular type. This Java 9 feature is expected to improve performance.

Instead of a single area, the code cache will be segmented into 3 by the code’s lifetime in cache:

  • Code that will stay in cache forever
  • Short lifetime
  • Potentially long lifetime

Due to these segmentations, several performance improvements occur. E.g. the method sweeper would be able to skip non-method code and act faster.

Ahead of Time Compilation

While it’s in the experimental stage, AOT- compilation is expected to improve the start-up time of applications.

New HTTP 2 Client

Java 9 features list is incomplete without the mention of new HTTP/2 and WebSocket. It’ll improve web page loading times, performance, and reduce resource usage.

Parser API for Nashorn

JDK 9 ships with parser API for Nashorn, whose goal was to implement a lightweight high-performance JS runtime in Java with native JVM. This API ensures better Project Nashorn JS support.

Other major-minor features

The other Java 9 features are:

  • Multi-release JARs
  • Process API updates
  • Garbage Collector improvements
  • Better Javadoc
  • Private interface methods

That’s not all; you can find more by the following link: