ceritasaham 

JDK 24 Changelog: All New Features

JDK 24 Changelog: All New Features

A complete list of features and JEPs in JDK 24 (March 2025), including the Class-File API, Stream Gatherers, and post-quantum cryptography (ML-KEM/ML-DSA).

20 September 2026#java#jdk#changelog#jdk-24

JDK 24 Changelog

JDK 24 was released on 18 March 2025 and is an extremely feature-rich release with no fewer than 24 JEPs. The highlights include the Class-File API and Stream Gatherers becoming standard, plus new post-quantum cryptography APIs (ML-KEM and ML-DSA).

JEP Summary

JEP NumberFeature
404Generational Shenandoah (Experimental)
450Compact Object Headers (Experimental)
472Prepare to Restrict the Use of JNI
475Late Barrier Expansion for G1
478Key Derivation Function API (Preview)
479Remove the Windows 32-bit x86 Port
483Ahead-of-Time Class Loading & Linking
484Class-File API
485Stream Gatherers
486Permanently Disable the Security Manager
487Scoped Values (Fourth Preview)
488Primitive Types in Patterns, instanceof, and switch (Second Preview)
489Vector API (Ninth Incubator)
490ZGC: Remove the Non-Generational Mode
491Synchronize Virtual Threads without Pinning
492Flexible Constructor Bodies (Third Preview)
493Linking Run-Time Images without JMODs
494Module Import Declarations (Second Preview)
495Simple Source Files and Instance Main Methods (Fourth Preview)
496Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
497Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
498Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
499Structured Concurrency (Fourth Preview)
501Deprecate the 32-bit x86 Port for Removal

Key Features

Class-File API Is Now Standard (JEP 484)

The Class-File API, previewed in JDK 22, finally becomes standard: an official API for reading, writing, and modifying .class files without depending on third-party libraries:

// Read the classes in a .class file
try (var stream = File.open("App.class")) {
    ClassFile cf = ClassFile.of();
    ClassModel cm = cf.parse(stream.readAllBytes());
    System.out.println("Name: " + cm.name().string());
}

Stream Gatherers Is Now Standard (JEP 485)

Stream Gatherers permanently exit the preview phase and become a stable part of the library, offering grouping and sliding-window primitives:

Stream.of("alpha", "beta", "gamma")
    .gather(Gatherers.windowSliding(2))
    .map(w -> w.get(0) + " - " + w.get(1))
    .toList();

Post-Quantum Cryptography: ML-KEM (JEP 496) and ML-DSA (JEP 497)

Java 24 adds cryptographic algorithms resistant to quantum computers, based on modular lattices (FIPS 203 / FIPS 204):

  • ML-KEM (Key Encapsulation Mechanism) for secure key exchange:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("ML-KEM-768");
KeyPair kp = kpg.generateKeyPair();
  • ML-DSA (Digital Signature Algorithm) for post-quantum digital signatures.

Permanently Disable the Security Manager (JEP 486)

The legacy Security Manager, deprecated since JDK 17, is permanently disabled (its runtime support is removed).

Synchronize Virtual Threads without Pinning (JEP 491)

The pinning behavior that occurred when a virtual thread synchronized with a native lock is removed, improving the scaling of concurrent applications.

ZGC: Remove the Non-Generational Mode (JEP 490)

Generational ZGC becomes the only mode: the code for the old non-generational ZGC is removed.

Remove the Windows 32-bit x86 Port (JEP 479)

JDK 24 is the last release to support Windows 10 32-bit x86; the Windows 32-bit port is removed.

Compact Object Headers (JEP 450) — Experimental

Project Lilliput: reduces the size of object headers (down to 64/32 bits) to cut memory consumption.

Other Changes

  • Generational Shenandoah (404): Experimental.
  • Ahead-of-Time Class Loading & Linking (483).
  • Key Derivation Function API (478): Preview.
  • Scoped Values (487): Fourth preview.
  • Primitive Types in Patterns (488): Second preview.
  • Flexible Constructor Bodies (492): Third preview.
  • Module Import Declarations (494): Second preview.
  • Structured Concurrency (499): Fourth preview.
  • Simple Source Files and Instance Main Methods (495): Fourth preview.
  • Preparation to restrict the use of JNI (472).
  • Late Barrier Expansion for G1 (475).
  • Vector API (489): Ninth incubator.
  • Warn upon Use of Memory-Access Methods in sun.misc.Unsafe (498).
  • Deprecate the 32-bit x86 port for removal (501).

Conclusion

JDK 24 is a release dense with infrastructure and security changes: the Class-File API and Stream Gatherers become standard, post-quantum cryptography arrives with ML-KEM/ML-DSA, and the ecosystem is simplified by removing the Security Manager and the Windows 32-bit port. It is a version worth evaluating for anyone who wants to be ready for the upcoming LTS 25.

mode [MARKET REGULER]build #ba129dblast update: Sep 22, 2026, 07:43:27 PM UTC▚▚ DYOR! Disclaimer ON! ▚▚