Java 10
Java 10 was released on 2018-03-20. It is not an LTS release and will be obsoleted at the release of Java 11 in September 2018.
Resources
- Java SE Development Kit 10 Downloads
- JDK 10 General-Availability Release
- JDK 10 Release Notes
- Deprecated API in JDK 10; "deprecated for removal" at the top. Note that Java 10 is the last feature release before Java 11, so represents the maximal list of APIs that will be removed in that release.
- Articles:
- Java 10 — migration story: Dependencies for deprecated modules. JaCoCo supports Java 10. Issue with Mockito.
Nashorn is compatible with ECMAScript 5.1 (with limited support for ECMAScript 2015 aka ECMAScript 6)
- See column "JJS 10" in Kangax’s ECMAScript 5 compatibility table
- Compare with column "JJS 10" in Kangax’s ECMAScript 6 compatibility table
- Note that Nashorn in Java 10 supports
let
andconst
but does not yet fully support arrow functions
Significant Changes from Java 9
- JEP 286: Syntax: added local-variable type inference (
var
).- Style guidelines from Project Amber
- FAQ from Project Amber
Optional.get
deprecated in favour ofOptional.orElseThrow
- JEP 319: Provide a default set of root Certification Authority (CA) certificates in the JDK. (part of the OpenJDK convergence exercise).
- Version number system changed again.
- JDK-8177290: APIs for creating unmodifiable collections (probably replaces some stuff from Guava).
- JDK-8186535: removed some stuff from
SecurityManager
- JDK-8148371: removed
policytool
- JDK-8159544: removed things from
com.sun.security.auth
- Improved Docker Container Integration probably means that at least some people will want to use Java 10 as an execution environment for the IdP.
- Copy factories for collections, optimising for already-unmodifiable structures. Makes the various "unmodifiable" collection wrappers mostly obsolete.
- Stream collectors for collections.