Java SE 10 (AKA Java 18.3)
Java 10 will use the new versioning convention set out by Oracle this will see the version numbers following a YY.M format. So far the versions announced using this format are 18.3 non-LTS in March 2018 and 18.9 LTS in September 2018.
Java SE 9
At JavaOne 2011, Oracle discussed features they hoped to release for Java 9 in 2016. Java 9 should include better support for multi-gigabyte heaps, better native code integration, a different default garbage collector (G1, for “shorter response times”) and a self-tuning JVM. In early 2016, the release of Java 9 was rescheduled for March 2017, later again postponed four more months to July 2017, and changed again to be finally available on September 21, 2017, due to controversial acceptance of the current implementation of Project Jigsaw by Java Executive Committee, which led Oracle to fix some open issues and concerns, and to refine some critical technical questions. In the last days of June 2017, Java Community Process expressed nearly unanimous consensus on the proposed Module System scheme.
- JSR 376: Modularization of the JDK under Project Jigsaw (Java Platform Module System)
- JEP 222: jshell: The Java Shell (a Java REPL)
- JEP 295: Ahead-of-Time Compilation
- JEP 268: XML Catalogs
- JEP 266: More Concurrency Updates. It includes a Java implementation of Reactive Streams, including a new Flow class that will include the interfaces currently provided by Reactive Streams.
- JEP 193: Variable Handles: Define a standard means to invoke the equivalents of various java.util.concurrent.atomic and sun.misc.Unsafe operations
- JEP 282: jlink: The Java Linker: Create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image. It effectively allows to produce a fully usable executable including the JVM to run it.
Java SE 8
- JSR 335, JEP 126: Language-level support for lambda expressions (officially, lambda expressions; unofficially, closures) under Project Lambda and default methods (virtual extension methods) which allow the addition of methods to interfaces without breaking existing implementations. There was an ongoing debate in the Java community on whether to add support for lambda expressions. Sun later declared that lambda expressions would be included in Java and asked for community input to refine the feature. Supporting lambda expressions also allows the performance of functional-style operations on streams of elements, such as MapReduce-inspired transformations on collections. Default methods allow an author of an API to add new methods to an interface without breaking the old code using it. Although it was not their primary intent,default methods also allow multiple inheritance of behavior (but not state).
- JSR 308, JEP 104: Annotation on Java Types
- Unsigned Integer Arithmetic
- JSR 337, JEP 120: Repeating annotations
- JSR 310, JEP 150: Date and Time API
- JEP 178: Statically-linked JNI libraries
- JEP 153: Launch JavaFX applications (direct launching of JavaFX application JARs)
- JEP 122: Remove the permanent generation
Java 8 is not supported on Windows XP but as of JDK 8 update 25, it can still be installed and run under Windows XP. Previous updates of JDK 8 could be run under XP, but had to be installed after a forced installation by directly unzipping files from the installation executable.
From October 2014, Java 8 was the default version to download from the official website. “Oracle will not post further updates of Java SE 8 to its public download sites for commercial use after September 2018”.