New features between Java 8 and Java 14
Since version 9, Java has new features every 6 months and it’s very hard to keep track of these new changes. Most of the information on the internet describes changes between the last 2 Java versions. However, if you’re in a similar situation as me, you’re not using the last Java version but a version several releases older.
Then it’s useful to know which new features were added since the version you use now, or between the versions that you use now and the one you want to start using next. Therefore I’ve compiled a table with all new features added since Java 8 for each new Java version. The first table contains changes in the Java language, the second language contains additions outside of the language, such as command line tools or JVM improvements.
Note that I didn’t include all the new features and API additions, only those that are most useful. There are some new less frequently used features that I didn’t include to keep the list brief.
Below you can find tables for:
New Java language features since Java 8
New JDK tools and features since OpenJDK 8
Tool / feature | Since | Experimental since |
Packaging Tool | 14 | |
Helpful NullPointerExceptions | 14 | |
Shenandoah GC | 12 | |
Epsilon (no-op) GC | 11 | |
Z GC | 11 | |
Experimental Java-Based JIT Compiler (Graal VM) | 10 | |
Docker Container Support (-XX:-UseContainerSupport) | 10 and 8u191 | |
Flexible heap size selection (-XX:MaxRAMPercentage) | 10 and 8u191 | |
Application Class-Data Sharing | 10 | |
jlink | 9 | |
JShell (Java REPL) | 9 | |
Multi-Release JAR Files | 9 | |
Compact Strings | 9 |
Deprecated/removed features and APIs:
Feature / API | Deprecated since | Removed since |
Solaris and SPARC Ports | 14 | |
ParallelScavenge + SerialOld GC Combination | 14 | |
CMS GC | 9 | 14 |
Pack200 Tools and API | 11 | 14 |
Nashorn JavaScript Engine | 11 | |
Java FX (moved to OpenJFX) | 11 | |
Java EE and CORBA modules | 9 | 11 |
javah Native-Header Generator | 10 | |
jhat Heap Visualizer | 9 | |
Launch-Time JRE Version Selection | 9 | |
Rarely-Used GC Combinations | 8 | 9 |
Applet API | 9 |
For more details, the javaalmanac.io/ catalog is very useful to browse the changes in Java thoughout all its history. It can give you complete diff of APIs between selected Java versions, e.g. between Java 8 and Java 11. Very useful If you’re thinking about migrating to a specific Java version.
Published on Java Code Geeks with permission by Ondrej Mihalyi, partner at our JCG program. See the original article here: New features between Java 8 and Java 14 Opinions expressed by Java Code Geeks contributors are their own. |
Hi…
I’m Elena gillbert.Java 11 is a currently supported long-term support (LTS) version (“Oracle Customers will receive Oracle Premier Support”); Oracle released for the “legacy” Java 8 LTS the last free “public update” in January 2019 for commercial use, while it will otherwise still support Java 8 with public updates for personal use up to …
Just can’t keep up with those micro upgrades. I’ve just stuck with Java 8, where clients can get thought java.com website and “Auf Wiedersehen”!
Java 11 is a currently supported long-term support (LTS) version