Java 9

Since the release of Java 8 in March of 2014, discussions around what’s next for Java 9 have begun to steadily grow. Although various JDK enhancements were originally targeted for Java 9, the scope of committed work has gradually narrowed with an upcoming proposed release date of September 2016. With over 30 key enhancements presently targeted, the ones with potential for broadest impact will be shared.
Project Jigsaw:
Among the largest impacting JDK 9 enhancements are from Project Jigsaw. Jigsaw’s primary goal is to make the JDK more modular whereby also enhancing the build system. It is motivated by the need for making Java more scalable for smaller computing devices, secure, performant, and to improve developer productivity. With the advent of the Internet of Things (IoT), enabling Java to run on smaller devices is instrumental for continued growth. However as Java’s footprint expands, its more prone to security targeting and performance issues as a nature of running on a vast permutation of computing services. Thus with a more modular JDK, developers can significantly reduce necessary libraries needed to build features, whereby reducing security risks as well as making the applications smaller with better performance (ie. improving code cache & class loader footprint, etc).
HTTP/2 Client: 
Among the most popular web protocols, HTTP has been getting its own upgrade to HTTP/2 (with inspiration from Google’s SPDY/2), boasting significant network performance gains. Hence, Java 9 will get its own HTTP client API implementing HTTP/2 and WebSocket to replace the legacy HttpURLConnection, which predates HTTP/1.1 and has various limitation such as the one thread per request/ response behavior. Using HTTP/2 in Java 9, applications will have better performance & scalability with memory usage on par or lower than HttpURLConnection, Apache HttpClient, and Netty.
jShell:
Also being referred to as Java RPEL (Read-Print-Eval-Loop), JDK9 users will be getting a shell like interface to interactively evaluate declarations, statements, and expressions in Java. Similar to the Python or Ruby interpreters or other JVM languages like Scala and Groovy, Java users will be able to run Java code without needing to wrap in classes or methods, allowing for a much easier, faster learning & experimentation. Furthermore, as Java has been moving towards becoming a less syntactically verbose language with features like Lambda introduced in JDK 8 (shared in our Java 8 blog last year), having a shell-like interface becomes more practical for ad-hoc testing.
The JVM Code Cache is critical to application performance and can be set at startup time using the following flag: -XX:InitialCodeCacheSize=32m. When the code cache memory is exhausted, the JVM losses JIT and goes into interpreted mode, significantly affecting application runtime performance. In Java 9, this section of memory is getting divided into the following 3 distinct heap segments in order to improve performance and enable future extensions: JVM internal (non-method) code, Profiled-code, Non-profiled code.
Notable mentions:
Some other notable changes in JDK 9 will include making the G1 collector default, adding a Microbenchmark testing suite extending the current JMH, and the removal of some aged unsupported performance tools such as JVM TI hprof and jHat.
Although most programming languages tend to come and go, Java is one that’s here to stay (least for the foreseeable decade). As one of the most popular and widely adopted languages with a high performant, scalable runtime, innovations towards the JDK have a large impact on the world’s computing infrastructure. By staying current with what’s in the next JDK, firms running JVM services can intelligently plan & prioritize their innovation initiatives that are complementary to languages improvements. For all those excited yet impatient and looking to get hands on, the latest JDK 9 builds can be accessible from here: https://jdk9.java.net/download/

No comments:

Post a Comment

Genuine websites to earn money.

If you are interested in PTC sites then this article is for you. I have personally tried many of the sites and found that the best thing ...