BreadcrumbHomeResourcesBlog What's New With Java 24 January 17, 2025 What's New With Java 24Java UpdatesJava 24 is a short-term JDK release that will receive premier support for six months. It will be released from Oracle on March 18, 2025. Java 24 includes 24 experimental, incubator, preview, and permanent features. Read on to learn more about what’s included in these JEPs and what’s next on Oracle’s roadmap after Java 24. Table of ContentsWhat Is Java 24?What Is a JEP?Experimental JEPs in Java 24Incubator JEPs in Java 24 Preview JEPs in Java 24 Permanent JEPs in Java 24What Comes After Java 24? Final Thoughts on Java 24 Table of Contents1 - What Is Java 24?2 - What Is a JEP?3 - Experimental JEPs in Java 244 - Incubator JEPs in Java 24 5 - Preview JEPs in Java 24 6 - Permanent JEPs in Java 247 - What Comes After Java 24? 8 - Final Thoughts on Java 24 Back to topWhat Is Java 24?Java 24 is a short-term JDK release that will be released in March 2025. Java 25, which is a long-term support JDK, will replace Java 24 in September 2025. Java 24 is also referred to as JDK 24, which stands for Java Development Kit (JDK). Java 24 will include two experimental JEPs, one incubator JEP, seven preview JEPs, and 14 permanent JEPs. 🔎 Looking for more info on Java LTS? Read this blog. Back to topWhat Is a JEP?A JEP, or Java Enhancement Proposal, is the means by which a new Java feature progresses from preliminary introduction and real-world testing to being a permanent part inclusion in the JDK. There are four main types of JEPs: experimental JEPs, incubator JEPs, preview JEPs, and permanent JEPs.Back to topExperimental JEPs in Java 24Experimental JEPs are enhancement proposals that are not yet finalized and still under development. By releasing these features as experimental JEPs, Oracle can solicit feedback from users with real-world scenarios. There are two experimental JEPs in Java 24. JEP 404: Generational Shenendoah The main purpose of this experimental JEP is to explore the possibility of a generational mode without breaking non-generational Shenendoah. Oracle intends to make generational mode the default in a future release. It is not a goal to replace non-generational Shenendoah with generational Shenendoah. JEP 450: Compact Object Headers The goal of this experimental JEP is to reduce the size of object headers in the HotSpot JVM from between 96 and 128 bits down to 64 bits on 64-bit architectures. This will reduce heap size, improve deployment density, and increase data locality. Back to topIncubator JEPs in Java 24 An incubator JEP refers to a feature that is still under development and not yet finalized. An incubator JEP is a way to introduce experimental features to the community for early testing and feedback before they become a standard part of the language. There is one incubator JEP in Java 24. JEP 489: Vector API (ninth incubator) If the vector API feature sounds familiar, that’s because it was first introduced as a incubating API in Java 16. Vector APIs were proposed for further rounds of incubation in Java 17, Java 18, Java 19, Java 20, Java 21, Java 22, and Java 23. Now, vector APIs are once again proposed as an incubator feature with some notable changes: A new variation of the selectFrom cross-lane operation accepts two input vectors, which serve as a lookup table. The selectFrom and rearrange cross-lane operations now wrap indexes rather than check for out-of-bounds indexes. Transcendental and trigonometric lanewise operations on ARM and RISC-V are now implemented via intrinsics. The new value-based class Float16 represents 16-bit floating-point numbers in the IEEE 754 binary16 format. Additions to arithmetic integral lanewise operations. Back to topPreview JEPs in Java 24 Preview features are features that are fully developed, but that still may change before they are introduced into the JDK as a permanent feature. Java 24 includes seven preview features, which are detailed below. JEP 478: Key Derivation Function API This JEP introduces an API for Key Derivation Functions (KDFs), which are cryptographic algorithms for deriving additional keys from a secret key and other data. It enables applications to use KDF algorithms such as the HMAC-based Extract-and-Expand Key Derivation Function and Argon2. JEP 487: Scoped Values (Fourth Preview) This JEP enables a method to share immutable data both with its callees within a thread, and with child threads. Scoped values are easier to reason about than thread-local variables. This is the fourth preview of scoped values; it was initially proposed as an incubator JEP in Java 20, and subsequently reintroduced as a preview feature in Java 21, Java Java 22, and Java 23. It's being reintroduced in Java 24 once more to solicit additional feedback. JEP 488: Primitive Types in Patterns, instanceof, and switch (Second Preview) This preview language feature enhances pattern matching by allowing primitive types in all pattern contexts, and extend instanceof and switch to work with all primitive types. It was introduced in Java 23 and is being reintroduced without change. JEP 492: Flexible Constructor Bodies (Third Preview) This JEP reimagines the role of constructors in the process of object initialization, enabling developers to more naturally place logic that they currently must factor into auxiliary static methods, auxiliary intermediate constructors, or constructor arguments. JEP 494: Module Import Declarations (Second Preview) Enhance the Java programming language with the ability to succinctly import all of the packages exported by a module. This simplifies the reuse of modular libraries, but does not require the importing code to be in a module itself. JEP 495: Simple Source Files and Instance Main Methods (Fourth Preview) This JEP evolves the Java programming language so that beginners can write their first programs without needing to understand language features designed for large programs. JEP 499: Structured Concurrency (Fourth Preview) This JEP treats groups of related tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability. Back to topPermanent JEPs in Java 24Permanent features have been introduced in previous JDKs and after iterations and refinements are ready for permanent release. All 14 of the permanent JEPs in Java 24 have appeared in previous JDKs. These permanent features are: JEP 472: Prepare to Restrict the Use of JNI JEP 475: Late Barrier Expansion for G1 JEP 479: Remove the Windows 32-bit x86 Port JEP 483: Ahead-of-Time Class Loading & Linking JEP 484: Class-File API JEP 485: Stream Gatherers JEP 486: Permanently Disable the Security Manager JEP 490: ZGC: Remove the Non-Generational Mode JEP 491: Synchronize Virtual Threads Without Pinning JEP 493: Linking Run-Time Images without JMODs JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm JEP 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe JEP 501: Deprecate the 32-bit x86 Port for Removal Back to topWhat Comes After Java 24? Java 24 is not a long-term support JDK, and will only be supported by Oracle for six months. It will be replaced by Java 25, which will be a long-term support version. This is a continuation of Oracle’s commitment to releasing a LTS version every two years, an acceleration from the previous cadence of every three years. Back to topFinal Thoughts on Java 24 Java 24 may be a minor release, but it’s packed with features. Even if you don’t plan on adopting Java 24 in your business, Java developers should take note because many of these features will be codified in Java 25. Develop Faster in any JDKNo matter what JDK version you use, JRebel can help you save Java development time by eliminating redeploys. See how much time you can save on cloud development during your 14-day free trial of JRebel. Try Free Back to top