DEV Community

sanjay shivanna
sanjay shivanna

Posted on

2

Moving from Java8 to JavaX...

I would like to keep this article to list out following

Key features in each version beginning from Java9 till Java12.
Challenges faced in migration from Java8 to JavaX
Good Blogs and Vlog available to refer to while migrating.

Refer this wiki page for complete details on JAVA releases and features and timelines.

Key Features by release:

Java9

Java Module System
Linking
Jshell - runtime console
Javadoc improvments
Collection Factory Methods ex: List stringsOf = List.of("apple","orange","grapes");
Stream API improvements
private interface methods
Http - new classes to make request/response
Multi release Jar - where you can specify which class file to pick based on the JRE.

Good Blogs to refer pluralsight, baeldung and journaldev

Java 10:

Local-Variable Type Inference ex: var = "number", var = 1;
Garbage-Collector Interface
Parallel Full GC for G1
Application Class-Data Sharing
Thread-Local Handshakes
Remove the Native-Header Generation Tool (javah)
Additional Unicode Language-Tag Extensions
Heap Allocation on Alternative Memory Devices
Experimental Java-Based JIT Compiler ex: Graal vm
Root Certificates
Time-Based Release Versioning

Good blogs : Journaldev

Java11:

Java11 is long term support(LTS) release. If we download JDK11 from oracle and use it in production then it's enterprise level and have to be paid.

Nest-Based Access Control
Dynamic Class-File Constants
Improve Aarch64 Intrinsics
Epsilon: A No-Op Garbage Collector
Remove the Java EE and CORBA Modules
HTTP Client (Standard)
Local-Variable Syntax for Lambda Parameters
 Key Agreement with Curve25519 and Curve448
 Unicode 10
 Flight Recorder
 ChaCha20 and Poly1305 Cryptographic Algorithms
 Launch Single-File Source-Code Programs
 Low-Overhead Heap Profiling
 Transport Layer Security (TLS) 1.3
 ZGC: A Scalable Low-Latency Garbage Collector
(Experimental) -
Deprecate the Nashorn JavaScript Engine
Deprecate the Pack200 Tools and API
Java12:
Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
Microbenchmark Suite
Switch Expressions (Preview)
JVM Constants API
One AArch64 Port, Not Two
Default CDS Archives
Abortable Mixed Collections for G1
Promptly Return Unused Committed Memory from G1

Good Blogs : whizlabs journaldev

Java13:

Dynamic CDS Archives
ZGC: Uncommit Unused Memory
Reimplement the Legacy Socket API
Switch Expressions (Preview)
Text Blocks (Preview)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay