Thursday, February 28, 2019

Java 9 - Overview

JAVA 9 (aka jdk 1.9) is a major release of JAVA programming language development. Its initial version was released on 21 Sep 2017. The main goals of Java 9 release are −
  • To make JDK and Java Standard Edition platform modular based in the sense that it can be scalled down to small computing devices well.
  • To improve the overall security of the JDK and Java Implementations.
  • To make build process and maintainance of java code libraries and large applications easy for for JAVA SE and EE platforms.
  • To design and implement a standard module system for the Java Platform which can be applied on both Platform and JDK easily.

New Features

There are 90+ enhancements added to Java 8, the most significant ones are mentioned below −
  • Module − A new kind of Java programing component introduced as module, which is a named, self-describing collection of code and data.
  • REPL (JShell) − Read-Eval-Print Loop (REPL) capability added to the Java platform.
  • HTTP 2 Client − new HTTPClient API supporting websockets and HTTP 2 streams and server push features.
  • Improved JavaDocs − Supports HTML5 output generation. Provides a search box to generated API documentation.
  • Multirelease JAR − Enhances the JAR format so that multiple, Java release-specific versions of class files can coexist in a single archive.
  • Collection Factory Methods − New static factory methods for List, Set, and Map interfaces to create immutable instances of those collections.
  • Private Interface Methods − Enhanced interfaces with private and private static methods.
  • Process API Improvements − Improved API to control and manage operating system processes.
  • Stream API Improvements − Enhanced security and robustness by allowing incoming streams of object-serialization data to be filtered.
  • Try With Resources improvement − Now final variables can be used as resources in the try-with-resources statement.
  • Enhanced @Deprecated Annotation − @Deprecated annotation revamped to provide more information about the status and intended disposition of an API.
  • Inner Class Diamond Operator − Allow the diamond operator to be used with anonymous classes if the argument type of the inferred type can be denoted.
  • Optional Class Improvements − New useful methods are added to java.util.Optional class.
  • Multiresolution Image API − Supports encapsulation of a set of images with different resolutions into a single multiresolution image.
  • CompletableFuture API improvements − The asynchronous mechanisms of the CompletableFuture class can perform an action when the process exits with ProcessHandle.onExit method.
  • Lightweight JSON − A lightweight API introduced to consume and generating documents and data streams via json in java 9.
  • Reactive Streams API − A new Reactive Streams API in Java SE 9 has been introduced to support reactive programming in java 9.

No comments:

Post a Comment

Concurrent Navigable Map Interface

A java.util.concurrent.ConcurrentNavigableMap interface is a subinterface of ConcurrentMap interface, and supports NavigableMap operations...