Java SE versions

This section provides an overview of the Java SE versions. For each version, the JEPs are listed with a summary or short remark, splitting them into four sections:

  • new features: lists new language features.
  • jdk-internal: JDK internal features like improvements of the JVM, changes to garbage collectors, reimplementation of APIs, Java SE ports to plattforms and the like.
  • deprecated: deprecated Java SE features like deprecated APIs, ports, garbage collectors, etc.
  • removed: removed Java SE features like deprecated APIs, ports, garbage collectors, etc.

In the section some feature details, the most interesting features (certainly biased) are presented in short form. Where applicable, an introduction on how to use the new language feature is given (i.e. text blocks, sealed classes, switch expressions, pattern matching).

Java 8

created onOctober 13, 2022
general availability on 2014-03-18 The original schedule aimed to ship the release in early September 2013, but due to an increased focus on browser-related security issues that date was not achievable....

Java 9

created onOctober 7, 2022
last modified onOctober 8, 2022
general availability on 2017-09-22 JEPs Java 9 comes with a vast list of features. There are 91 JEPs listed in the features and schedule page for JDK 9 (see also JDK 9) ....

Java 10

created onJuly 16, 2022
general availability on 2018-03-20 JEPs new features JEP state summary /remark JEP 286: Local-Variable Type Inference standard enhance the Java Language to extend type inference to declarations of local variables with initializers....

Java 11

created onJuly 16, 2022
general availability on 2018-09-25 JEPs new features JEP state summary /remark JEP 181: Nest-Based Access Control standard introduce nests, an access-control context that aligns with the existing notion of nested types in the Java programming language....

Java 12

created onJuly 16, 2022
general availability on 2019-03-19 JEPs new features JEP state summary /remark JEP 189: Shenandoah, A Low-Pause-Time Garbage Collector (Experimental) experimental a GC which reduces GC pause times by doing evacuation work concurrently with the running Java threads....

java 13

created onJuly 16, 2022
general availability on 2019-09-17 jeps new features jep state summary /remark jep 351: zgc, uncommit unused memory (Experimental) experimental zgc does not currently uncommit and return memory to the operating system, even when that memory has been unused for a long time....

Java 14

created onJuly 16, 2022
general availability on 2020-03-17 JEPs new features JEP state summary /remark JEP 305: Pattern Matching for instanceof (Preview) preview instanceof now saves you from explicit, verbose casts....

Java 15

created onJuly 16, 2022
general availability on 202-09-15 JEPs new features JEP state summary /remark JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA) standard EdDSA has a better performance than the existing ECDSA implementation (which uses native C code) at the same security strength....

Java 16

created onJuly 20, 2022
general availability on 2021-03-16 JEPs new features JEP state summary /remark JEP 338: Vector API (Incubator) incubator provide an initial iteration of an incubator module, jdk....

Java 17

created onOctober 4, 2022
general availability on 2021-09-14 JEPs new features JEP state summary /remark JEP 306: Restore Always-Strict Floating-Point Semantics standard make floating-point operations consistently strict, rather than have both strict floating-point semantics (strictfp) and subtly different default floating-point semantics....

Java 18

created onOctober 6, 2022
general availability on 2022-03-22 JEPs new features JEP state summary /remark JEP 400: UTF-8 by Default standard specifies UTF-8 as the default charset of the standard Java APIs....

Java 19

created onOctober 6, 2022
general availability on 20 March 2018 JEPs new features JEP state summary /remark JEP 405: Record Patterns preview introduces record patterns to deconstruct record values....