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
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
letandconstbut does not yet fully support arrow functions
Significant Changes from Java 9
JEP 286: Syntax: added local-variable type inference (
var).FAQ from Project Amber
Optional.getdeprecated in favour ofOptional.orElseThrowJEP 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
SecurityManagerJDK-8148371: removed
policytoolJDK-8159544: removed things from
com.sun.security.authImproved 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.