VOOZH about

URL: https://www.javacodegeeks.com/2020/03/new-features-between-java-8-and-java-14.html

⇱ New features between Java 8 and Java 14 - Java Code Geeks


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

FeatureSincePreview/incubation since
Record type14
Pattern Matching for instanceof
( if (x instanceOf String) { x is String here }
14
Text blocks13
Switch expressions (also JEP 354 in JDK 13)1412
New variants of exceptionally in CompletionStage class (async, componse)12
String API improvements (indent, transform)12
CompactNumberFormat class12
String API improvements (repeat, isBlank, strip, lines)11
Local-Variable Syntax for Lambda Parameters11
New HTTP client API119
Local-Variable Type Inference10
Flow API (reactive streams)9
Java Platform Module System (modules)9
Collection factory methods9
Stream API improvements (takeWhile, dropWhile, ofNullable, iterate with condition)9
Multi-Resolution Image API9
Stack-Walking API9
this.getClass().getPackageName()9
Process API updates (detailed info about processes, e.g. ID, onExit, destroy)9
CompletableFuture API enhancements (delay, timeout)9
Interface private methods9
since and forRemoval in Deprecated annotation9
Interface Default and Static Methods8
Method References8
Optional class8
Lambda expressions8
Functional interfaces8
Stream API8
Effectively Final Variables8
Repeating Annotations8
New Date Time API 8

New JDK tools and features since OpenJDK 8

Tool / featureSinceExperimental since
Packaging Tool14
Helpful NullPointerExceptions14
Shenandoah GC12
Epsilon (no-op) GC11
Z GC11
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 Sharing10
jlink9
JShell (Java REPL)9
Multi-Release JAR Files9
Compact Strings9

Deprecated/removed features and APIs:

Feature / APIDeprecated sinceRemoved since
Solaris and SPARC Ports14
ParallelScavenge + SerialOld GC Combination14
CMS GC914
Pack200 Tools and API1114
Nashorn JavaScript Engine11
Java FX (moved to OpenJFX)11
Java EE and CORBA modules911
javah Native-Header Generator10
jhat Heap Visualizer9
Launch-Time JRE Version Selection9
Rarely-Used GC Combinations89
Applet API9

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.

Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy

Thank you!

We will contact you soon.

👁 Photo of Ondrej Mihalyi
Ondrej Mihalyi
March 10th, 2020Last Updated: June 30th, 2020
3 1,812 3 minutes read

Ondrej Mihalyi

Ondrej is a lecturer and consultant inventing and evangelizing new approaches with already proven Java tooling. As a Scrum Master and expert in Java EE ecosystem, he helps companies to build and educate their developer teams, improve their development processes and be flexible and successful in meeting client requirements.
Subscribe

This site uses Akismet to reduce spam. Learn how your comment data is processed.

3 Comments
Oldest
Newest Most Voted
6 years ago

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 …

1
Reply
Alex Byrth
6 years ago

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”!

2
Reply
6 years ago

Java 11 is a currently supported long-term support (LTS) version

0
Reply
Back to top button
Close
wpDiscuz