Java Enhancements overview: Moving from 11 to 17 in cube
Today 2021.09.14 has reached the development of Java SE 17 the General Availability milestone! The Java SE 17 release is available for the production use! (openjdk download)
Java SE 17 release contains a big amount of stability, security updates and other enhancements and improvements (view all in details in the java version section).
Java SE 17 is also the next Long Term Support Release (LTS) which support ends in September 2029.
Java has done an amazing progress since the last LTS release of Java SE 11. Let’s review in cube all features and enhancements that have been added during the 6 months release cycles into the last release:
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
This is a brief summary of the incredible effort added to releasing the Java SE 17 and more. Kudos and Congratulation everyone involved!
Happy upgrading and migrating !