Java 9 Tutorial
The Java 9 is most popular release of java programming to make it platform modular. It is used to improve JDK and java implementation security. It provides JAVA SE and JAVA EE platform maintenance. It provides the easy way to maintain Java libraries and large code applications.
Java 9 features:

Following are the Java 9 features:
- Modular system: The main aim of this feature in java programming is to scale large java applications to small devices easily. Modules in Java generally have dependencies. They uses public API’s, sometimes the implementation is also hidden or private. Modular system makes JVM run on any devices with less available memory. In order to achieve light weight concept, JDK is also divided into set of modules. This facility also provides us way to develop modular applications.
- Interface Private methods: In Java9, we have facility to provide private methods inside the java interface. Before java 8, we can have only constant variables and abstract methods inside the interface. So, we can not provide implementation inside java interface. In Java 9 we are allowed to declare private methods inside the interface. This helps to share code among non abstract methods.
- Try-with Resources: This is nothing but improvement in the try statement having the resources duly declared. The resources should be closed using it’s object whenever it is not required. The Try-with Resources statement ensures the user that resource object will be closed whenever the requirement finishes. It provides the facility to the users. Users don’t have to worry about closing the file connection, network connection explicitly.
- Anonymous Classes Improvement: In Java 9 the user have the facility to use diamond operator with anonymous classes. This feature is not allowed in Java 7. The denotable data types like integer, float, string are present in java. The Java 9 has the feature to infer this denotable data types with the anonymous classes. It improves he readability of the application and makes the code more efficient.
- Java @SafeVarargs Annotations: In Java 9, the method or constructor which takes Varargs parameter uses this annotation. This helps the user to ensure that the particular block of code does no perform any unsafe operation.
- Java Collection Factory Methods: The instances of the collection which cannot be modified are created using the static method which are nothing but the factory methods. This can be used to create set, map, and list. Adding the new element will throw exception. It results in creating the immutable instances to support collections in concise way.
- Java Process API improvement: In Java 9 Process API improved. Operating system processes can be easily managed and controlled using this feature. Some new classes and interfaces are added to support Java Process API improvement. ProcessHandle class in Java 9 allows us to deal with process ID, start time, CPU time. It facilitates user to check whether the process is live or destroyed.
- Java Stream API improvement: The Stream in java is nothing but sequence of objects to perform aggregate operations. In java 9 takeWhile() method is added to make streams better. Until some predicate becomes false it takes value and returns ordered stream
- JShell- The Java Shell: This feature allows the user to execute the java code from shell. It gives output immediately and saves user time. It is commonly known as REPL tool which can be described as read, evaluate, print loop. It is used by many of developers to taste their business logic.
- Java 9 Control Panel: The applications which are embedded with the browser are maintained using the Java 9 control panel. All the settings for embedding the browser are maintained by this feature.
- Java New Version-String Scheme: This features allows us to record version specific strings information. It contains security and patch updates. The $MAJOR shows major changes n java version. The $MINOR shows minor changes in java version. $SECURITY represents security update. $PATCH shows major patch fixes.
- Enhanced @Deprecated Annotation: Whatever the element with @Deprecated Annotations denotes that it should not be used. It informs the user that it may contains error, incompatible versions. The compiler generates warning when we use deprecated elements. With the deprecated annotations, Java 9 has added two more improvements. The forRemoval indicate whether the element is selected for removal in future version default value is false. The since returns version of the element from which it is deprecated.