Explore Java 24: New Experimental, Incubator, Preview & Permanent JEPs
Java 24, a short‑term JDK release slated for March 2025, introduces 24 new features—including two experimental JEPs, one incubator JEP, seven preview JEPs, and fourteen permanent JEPs—while outlining Oracle’s roadmap toward the subsequent long‑term Java 25 version.
Java 24 is a short‑term JDK version that will receive six months of advanced support and is scheduled for release on March 18, 2025. It includes 24 experimental, incubator, preview, and permanent features.
What Is Java 24?
Java 24 is a short‑term JDK release slated for March 2025; Java 25 will be a long‑term support JDK released in September 2025 to replace Java 24.
Java 24, also known as JDK 24, will contain two experimental JEPs, one incubator JEP, seven preview JEPs, and fourteen permanent JEPs.
What Is a JEP?
A JEP (Java Enhancement Proposal) is the mechanism by which new Java features progress from initial concept and testing to becoming a permanent part of the JDK.
JEPs are classified into four types: experimental, incubator, preview, and permanent.
Experimental JEPs in Java 24
Experimental JEPs are proposals still under development and not yet finalized. Publishing them as experimental allows Oracle to gather feedback from real‑world usage.
Java 24 includes two experimental JEPs:
JEP 404: One‑Generation Shenandoah
The goal of this experimental JEP is to explore a generational mode for the Shenandoah garbage collector without breaking the existing non‑generational Shenandoah. Oracle plans to make the generational mode the default in future releases.
JEP 450: Compact Object Headers
This JEP aims to reduce the object header size in the HotSpot JVM from 96‑128 bits to 64 bits on 64‑bit architectures, decreasing heap size, improving deployment density, and enhancing data locality.
Incubator JEP in Java 24
JEP 489: Vector API (Ninth Incubator)
The Vector API, originally introduced as an incubating API in Java 16, has been proposed for further incubation across Java 17‑23 and is now re‑proposed in Java 24 with significant changes, including new cross‑lane operations, ARM and RISC‑V support, a value‑based Float16 class, and added arithmetic lane operations.
Preview JEPs in Java 24
Preview features are fully developed but may still change before becoming permanent. Java 24 includes seven preview JEPs:
JEP 478: Key Derivation Function (KDF) API – introduces an API for deriving keys from existing keys and data, supporting algorithms such as HMAC‑based extraction and Argon2.
JEP 487: Scoped Values (Fourth Preview) – enables sharing immutable data between a method and its sub‑threads, offering a simpler alternative to thread‑local variables.
JEP 488: Pattern Matching for Primitive Types, instanceof, and switch (Second Preview) – enhances pattern matching by allowing primitive types in all pattern contexts and extends instanceof and switch accordingly.
JEP 492: Flexible Constructor Bodies (Third Preview) – reimagines constructors to allow developers to place initialization logic in helper static methods, auxiliary constructors, or constructor parameters.
JEP 494: Module Import Declarations (Second Preview) – simplifies importing all packages exported by a module, improving module reuse without requiring import code to reside in the module itself.
JEP 495: Simple Source Files and Main Methods (Fourth Preview) – streamlines the language so beginners can write their first program without needing to understand large‑scale language features.
JEP 499: Structured Concurrency (Fourth Preview) – treats related tasks running in different threads as a single unit, simplifying error handling, cancellation, reliability, and observability.
Permanent JEPs in Java 24
These permanent JEPs were introduced in earlier JDK versions and have been refined for final inclusion:
JEP 472: Prepare to Restrict the Use of JNI
JEP 475: G1 Post‑Barrier Extensions
JEP 479: Remove Windows 32‑bit x86 Port
JEP 483: Early Class Loading and Linking
JEP 484: Class‑File API
JEP 485: Stream Collector
JEP 486: Permanently Disable the Security Manager
JEP 490: ZGC – Remove Non‑Generational Mode
JEP 491: Synchronized Virtual Threads without Fixed
JEP 493: Link Runtime Image without JMOD
JEP 496: Key‑Encapsulation Mechanism Based on Post‑Quantum Module Lattice
JEP 497: Post‑Quantum Digital Signature Algorithm Based on Module Lattice
JEP 498: Warn When Using Memory‑Access Methods in sun.misc.Unsafe
JEP 501: Deprecate and Remove 32‑bit x86 Port
What Comes After Java 24?
Java 24 is not an LTS release; Oracle will support it for six months before it is superseded by Java 25, which will be a long‑term support version. This continues Oracle’s commitment to release an LTS version every two years, accelerating from the previous three‑year cadence.
Final Thoughts on Java 24
Although Java 24 is a modest release, it packs many features. Even if you do not plan to adopt Java 24 in production, Java developers should stay aware, as many of its features will be standardized in Java 25.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
