Fundamentals 10 min read

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.

21CTO
21CTO
21CTO
Explore Java 24: New Experimental, Incubator, Preview & Permanent JEPs

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.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaJDKProgramming LanguageJava 24JEP
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.