2021.09.14 was an important day for the Java community. Oracle announced the general availability of the expected release of Java 17. This release is one of the Long Term Support (LTS) ones and brings with a big amount of new features, enhancements and improvements. It support ends in September 2029!
Beside of it Oracle has communicate a simpler license model. It means that beginning with JDK17 release on the release are provided under free to use license (GPL) until one year after the next LTS release. This step brings plenty of time to migrate an application to the next LTS version.Oracle proposed to shorten the LTS release cadence from 3 to 2 years. It means that if accepted we can expect the next LTS release version in September 2023, which will be Java SE 21
More details in an overview of all added enhancements between both LTS versions (from 11 to 17, more then 62) with some examples
Java SE 17
- JEP-306: Restore Always-Strict Floating-Point Semantic
- JEP-356: Enhanced Pseudo-Random Number Generators
- JEP-382: New macOS Rendering Pipeline
- JEP-391: macOS/AArch64 Port
- JEP-398: Deprecate the Applet API for Removal
- JEP-403: Strongly Encapsulate JDK Internals
- JEP-407: Remove RMI Activation
- JEP-409: Sealed Classes
- section: Java SE 17: Sealed Classes
- JEP-410: Remove the Experimental AOT and JIT Compiler
- JEP-411: Deprecate the Security Manager for Removal
- JEP-415: Context-Specific Deserialization Filters
Java SE 16
- JEP-347: Enable C++14 Language Features
- JEP-357: Migrate from Mercurial to Git
- JEP-369: Migrate to GitHub
- JEP-376: ZCG: Concurrent Thread-Stack Processing
- JEP-380: Unix-Domain Socket Channels
- JEP-386: Apline Linux Port
- JEP-387: Elastic Metaspace
- JEP-388: Windows/AArch64 Port
- JEP-390: Warnings for Value-Based Classes
- JEP-392: Packing Tool
- section: Java SE 16: Packaging Tool
- JEP-394: Pattern Matching for instanceof
- JEP-395: Records
- section: Java SE 15: Records
- JEP-396: Strongly Encapsulate JDK Internals by Default
Java SE 15
- JEP-339: Edwards-Curve Digital Signature Algorithm (EdDSA)
- JEP-371: Hidden Classes
- JEP-373: Reimplement the Legacy DatagramSocket API
- JEP-377: ZGC: A scalable low-latency garbage collector
- JEP-378: Text blocks
- section: Java SE 15: Text Blocks
- section: Java tutorials
- JEP-379: Shenandoah: A low-pause-time garbage collector
Java SE 14
- JEP-345: NUMA(non-uniform memory access)-Aware Memory Allocation for G1
- JEP-349: JFR (Java Flight Recorder) Event Streaming
- JEP-352: Non-volatile mapped byte buffers
- JEP-358: Helpful NullPointerExceptions
- JEP-361: Switch Expressions (Standard)
- JEP-364: ZGC on macOS
- JEP-365: ZGC on Windows
Java SE 13
- JEP-350: Dynamic CDS (Class-Data Sharing) Archives
- JEP-351: ZGC: Uncommit Unusd Memory
- JEP-353: Remimplement the Legacy Socket API
Java SE 12
- JEP-230: Microbenchmark suite
- JEP-334: JVM Constants API
- JEP-340: One AArch64 Port, not two
- JEP-341: Default CDS (Class-Data Sharing) Archives
- JEP-344: Abortable Mixed Collections for G1
- JEP-346: Promptly Return Unused Committed Memory from G1
Java SE 11
- JEP-181: Nest-Based Access Control
- JEP-309: Dynamic Class-File constants
- JEP-315: Improve AArch64 Intrinsics
- JEP-318: Epsilon: A No-Op garbage collector
- JEP-321: HTTP Client (standard)
- JEP-323: Local-Variable Syntax for Lambda Parameters
- JEP-324: Key Agreement with Curve25519 and Curve448
- JEP-327: Unicode 10
- JEP-328: Flight Recorder
- JEP-329: ChaCha20 and Poly1305 Cryptographic Algorithms
- JEP-330: Launch Single-File Source-Code Programs
- JEP-331: Low-Overhead Heap Profiling
- JEP-332: Transport Layer Security (TLS) 1.3
Happy upgrading and migrating !
Links:[WengnerITSolutions] Lab/Java Enhancements overview: From ver. 11 to 17 in cube
No comments:
Post a Comment