Thursday, July 12, 2018

Changes in Java 9

Java 9 was releaseed 2017-09-21. It is not an LTS release and was obsoleted at the release of Java 10 on 2018-03-20.


Schedule

2016/05/26Feature Complete
2016/12/22Feature Extension Complete
2017/01/05Rampdown Start
2017/02/09All Tests Run
2017/02/16Zero Bug Bounce
2017/03/16Rampdown Phase Two
2017/06/22Initial Release Candidate
2017/07/06Final Release Candidate
2017/09/21General Availability

Significant Changes from Java 8

  • JEP 200: Introduced the modular JDK.
  • JEP 243: Java-Level JVM Compiler Interface
    • First prototyped in Java 8, this is the foundation for things like Graal: language compilers written in Java that target the JVM at runtime. It's an experimental feature in Java 9, and the actual API is changed in Java 11.
  • Removed javac support for --source/--target 5/1.5.
  • Static convenience factory methods for collections, with new immutable implementations.

References about schedule: