
Foojay.io | Friends of OpenJDK and Java Programming
Welcome to OpenJDK (Java) 24 (#68)
Samstag, 15. März 2025 · 55 min
Kapitelklicken springt direkt hin
Shownotes
We serve you a podcast about the new Java version every six months.
Our regular guest, Simon Ritter, Deputy CTO of Azul, is known on social media as "speakjava." He is part of the OpenJDK vulnerability group, JCP executive committee, and expert group for the Java SE specification request so that he can share a lot of inside information with us.
In this episode, we are joined by Hanno Embregts, a Java Developer by day and musician by night. He publishes a post on Foojay with all the details of every new Java release and prepared a long description of all the new features included in Java 24.
Let's see what this new release brings us...
Guests
Simon Ritter
linkedin.com/in/siritter
bsky.app/profile/speakjava.bsky.social
Hanno Embregts
linkedin.com/in/hannotify
bsky.app/profile/hanno.codes
Content
Introduction of the topic and guests
Why 24 JEPs in release 24?
Overview of the changes in Java 24
The changes in Hotspot and GC
JEP 404: Generational Shenandoah (Experimental)
openjdk.org/jeps/404
JEP 450: Compact Object Headers (Experimental)
openjdk.org/jeps/450
JEP 475: Late Barrier Expansion for G1
openjdk.org/jeps/475
JEP 483: Ahead-of-Time Class Loading & Linking
openjdk.org/jeps/483
JEP 491: Synchronize Virtual Threads without Pinning
openjdk.org/jeps/491
Security JEPs and Quantum resistance
JEP 478: Key Derivation Function API (Preview)
openjdk.org/jeps/478
JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
openjdk.org/jeps/496
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
openjdk.org/jeps/497
Tools
JEP 493: Linking Run-Time Images without JMODs
openjdk.org/jeps/493
Repreviews and finalizations
JEP 489: Vector API (Ninth Incubator)
openjdk.org/jeps/489
JEP 484: Class-File API
openjdk.org/jeps/484
JEP 485: Stream Gatherers
openjdk.org/jeps/485
JEP 487: Scoped Values (Fourth Preview)
openjdk.org/jeps/487
JEP 488: Primitive Types in Patterns, instanceof, and switch (Second Preview)
openjdk.org/jeps/488
How JEPs get finalized and included
JEP 492: Flexible Constructor Bodies (Third Preview)
openjdk.org/jeps/492
JEP 494: Module Import Declarations (Second Preview)
openjdk.org/jeps/494
JEP 495: Simple Source Files and Instance Main Methods (Fourth Preview)
openjdk.org/jeps/495
JEP 499: Structured Concurrency (Fourth Preview)
openjdk.org/jeps/499
Deprecations & Restrictions
JEP 472: Prepare to Restrict the Use of JNI
openjdk.org/jeps/472
JEP 486: Permanently Disable the Security Manager
openjdk.org/jeps/486
JEP 490: ZGC: Remove the Non-Generational Mode
openjdk.org/jeps/490
Trash Talk - Exploring the JVM memory management by Gerrit Grunwald
youtube.com/watch?v=Jh79ojcror0
JEP 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
openjdk.org/jeps/498
Removal of 32-bit support
JEP 479: Remove the Windows 32-bit x86 Port
openjdk.org/jeps/479
JEP 501: Deprecate the 32-bit x86 Port for Removal
openjdk.org/jeps/501
Should we use Java 24 in production?
Looking forward to the next LTS in September
Conclusion