Java 9 Features and release Date


Java 9
Java 9

Java 9 Features and release Date

Oracle has released its updated list of proposed or targeted Java 9 enhancements. In addition to previously confirmed Java modularity updates, the most recent list includes a common logging system for all JVM components (JEP 158), more HotSpot JIT compiler controls (JEP 158), and refinements to improve the efficiency of garbage collection (JEP 214), and repair issues introduced by Project Coin language updates in JDK 7 (JEP 213).

Java 9 will introduce a modularized JDK, which means developers will be able to load smaller amounts of code when running applications that donít require the entire environment. This will enable Java to scale from small devices to large software systems while providing a secure platform.

Oracle have announced more features to be delivered as part of JDK 9. The headline features is modularity. However, a large number of other features have also been announced. The new features include:

  • Unified JVM Logging – a complete overhaul of how the JVM reports events in its subsystems, replacing the ad-hoc and separate logs that Hotspot current generates.
  • Remove GC Combinations Deprecated in JDK 8 – this is the removal of 3 outdated garbage collection combinations: DefNew + CMS, ParNew + SerialOld and Incremental CMS. These combinations were already deprecated in Java 8.
  • Compiler Control – fine grained control of the Hotspot JIT compiler down to the level of being able to switch a specific optimization on or off at a per-method level.
  • Milling Project Coin – tidying up a few leftover edge cases from Java 7’s Project Coin (which delivered some small language changes).


The goal of this Project is to produce an open-source reference implementation of the Java SE 9 Platform, to be defined by a forthcoming JSR in the Java Community Process.

The schedule and features of this release are proposed and tracked via the JEP Process, as amended by the JEP 2.0 proposal.

Java 9 – Schedule

2015/12/10 Feature Complete
2016/02/04 All Tests Run
2016/02/25 Rampdown Start
2016/04/21 Zero Bug Bounce
2016/06/16 Rampdown Phase 2
2016/07/21 Final Release Candidate
2016/09/22 General Availability

Java 9 – The Ultimate Feature List

JEP proposed to target JDK 9

273: DRBG-Based SecureRandom Implementations

This JEP is offered to all JDK 9 Committers for their consideration. Feedback is more than welcome, as are reasoned objections, via the jdk9-dev mailing list. If no such objections are raised by 20:00 UTC on Thursday, 15 October 2015, or if they’re raised and then satisfactorily answered, then this JEP will be targeted to JDK 9.

JEPs targeted to JDK 9, so far

102: Process API Updates
110: HTTP 2 Client
143: Improve Contended Locking
158: Unified JVM Logging
165: Compiler Control
193: Variable Handles
197: Segmented Code Cache
199: Smart Java Compilation, Phase Two
201: Modular Source Code
211: Elide Deprecation Warnings on Import Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: Modular Run-Time Images
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
230: Microbenchmark Suite
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11.0 Updates into JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of GStreamer
258: HarfBuzz Font-Layout Engine
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
270: Reserved Stack Areas for Critical Sections
274: Enhanced Method Handles


Please enter your comment!
Please enter your name here