Changelog
Java 8
Release type: LTS - March 2014 - July 2019/July 2022
Features
Language-level support for lambda expressions (closures) and Default methods on interfaces (JSR 335, JEP 126)
Project Nashorn, a JavaScript runtime which allows developers to embed JavaScript code within applications
(JSR 223 and JEP 174)
Annotation on Java types (JSR 308 and JEP 104)
Unsigned integer arithmetic
Repeating annotations (JSR 337, JEP 120)
Date and time API (JSR 310 and JEP 150)
Statically-linked JNI libraries (JEP 178)
Launch JavaFX applications (direct launching of JavaFX application JARs) (JEP 153)
Remove the permanent generation (JEP 122)
Java 9
Release type: non-LTS - September 2017 - March 2018
Modularization of the JDK under Project Jigsaw (Java Platform Module System) (JSR 376)
JShell: The Java Shell (a Java REPL) (JEP 222)
Ahead-of-time compilation (JEP 295)
XML catalogs (JEP 268)
Java implementation of Reactive Streams, including a new Flow class that included the interfaces previously provided by Reactive Streams (JEP 266)
Variable handles: define a standard means to invoke the equivalents of various
java.util.concurrent.atomic
andsun.misc.Unsafe
operations (JEP 193)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 (JEP 282)
JavaDB was removed from JDK
HiDPI graphics: automatic scaling and sizing (JEP 263)
Compact Strings (JEP 254)
Milling Project Coin (JEP 213)
Allow
@SafeVarargs
on private instance methodsAllow effectively-final variables to be used as resources in the try-with-resources statement
Allow diamond with anonymous classes if the argument type of the inferred type is denotable
Complete the removal, begun in Java SE 8, of underscore from the set of legal identifier names
Support for private methods in interfaces (proposal)
Java 10
Release type: non-LTS - March 2018 - September 2018
Local-variable type inference (JEP 286)
Experimental Java-based JIT compiler. This is the integration of the Graal dynamic compiler for the Linux x64 platform (JEP 317)
Application class-data sharing. This allows application classes to be placed in the shared archive to reduce startup and footprint for Java applications (JEP 310)
Time-based release versioning (JEP 322)
Parallel full GC for G1 (JEP 307)
Garbage-collector interface (JEP 304)
Additional Unicode language-tag extensions (JEP 314)
Root certificates (JEP 319)
Thread-local handshakes (JEP 312)
Heap allocation on alternative memory devices (JEP 316)
Remove the native-header generation tool (JEP 313)
Consolidate the JDK forest into a single repository (JEP 296)
Java 11
Release type: LTS - September 2018 - September 2023
Dynamic class-file constants (JEP 309)
Epsilon: a no-op garbage collector (experimental) (JEP 318)
Local-variable syntax for lambda parameters (JEP 323)
Low-overhead heap profiling (JEP 331)
HTTP client (standard) (JEP 321)
Transport Layer Security (TLS) 1.3 (JEP 332)
Flight recorder (JEP 328)
ZGC: a scalable low-latency garbage collector (Experimental) (JEP 333)
JavaFX, Java EE and CORBA modules have been removed from JDK
Deprecated the Nashorn JavaScript engine (JEP 335)
Unicode 10.0.0 support (while current version is Unicode 11.0.0, it's only in Java 12)
A number of features from previous releases were dropped; in particular, Java applets and Java Web Start are no longer available.
Java 12
Release type: non-LTS - March 2019 - September 2019
Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) (JEP 189)
Microbenchmark Suite (JEP 230)
Switch Expressions (Preview) (JEP 325)
JVM Constants API (JEP 334)
One AArch64 Port, Not Two (JEP 340)
Default CDS Archives (JEP 341)
Abortable Mixed Collections for G1 (JEP 344)
Promptly Return Unused Committed Memory from G1 (JEP 346)
Java 13
Release type: non-LTS - September 2019 - March 2020
Dynamic CDS Archives (JEP-350)
ZGC: Uncommit Unused Memory (JEP-351)
Reimplement the Legacy Socket API (JEP-353)
Switch Expressions (Preview) (JEP-354)
Text Blocks (Preview) (JEP-355)
Java 14
Release type: non-LTS - March 2020 - September 2020
Pattern Matching for instanceof (Preview) (JEP-305)
Packaging Tool (Incubator) (JEP-343)
NUMA-Aware Memory Allocation for G1 (JEP-345)
JFR Event Streaming (JEP-349)
Non-Volatile Mapped Byte Buffers (JEP-352)
Helpful NullPointerExceptions (JEP-358)
Records (Preview) (JEP-359)
Switch Expressions (Standard) (JEP-361)
Deprecate the Solaris and SPARC Ports (JEP-362)
Remove the Concurrent Mark Sweep (CMS) Garbage Collector (JEP-363)
ZGC on macOS (JEP-364)
ZGC on Windows (JEP-365)
Deprecate the ParallelScavenge + SerialOld GC Combination (JEP-366:)
Remove the Pack200 Tools and API (JEP-367)
Text Blocks (Second Preview) (JEP-368)
Foreign-Memory Access API (Incubator) (JEP-370)
Java 15
Release type: non-LTS - September 2020 - March 2021
Java 16
Java 17
Last updated
Was this helpful?