Foojay.io, the Friends Of OpenJDK! - S04 / E68

Welcome to OpenJDK (Java) 24 (#68)

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
      https://www.linkedin.com/in/siritter/
      https://bsky.app/profile/speakjava.bsky.social
   Hanno Embregts
      https://www.linkedin.com/in/hannotify/
      https://bsky.app/profile/hanno.codes

Content

00:00 Introduction of the topic and guests
00:58 Why 24 JEPs in release 24?
02:16 Overview of the changes in Java 24

03:37 The changes in Hotspot and GC
   JEP 404: Generational Shenandoah (Experimental)
      https://openjdk.org/jeps/404
   JEP 450: Compact Object Headers (Experimental)
      https://openjdk.org/jeps/450
   JEP 475: Late Barrier Expansion for G1
      https://openjdk.org/jeps/475
04:46 JEP 483: Ahead-of-Time Class Loading & Linking
      https://openjdk.org/jeps/483
07:30 JEP 491: Synchronize Virtual Threads without Pinning
      https://openjdk.org/jeps/491

10:27 Security JEPs and Quantum resistance
   JEP 478: Key Derivation Function API (Preview)
      https://openjdk.org/jeps/478
   JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
      https://openjdk.org/jeps/496
   JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
      https://openjdk.org/jeps/497

13:00 Tools
   JEP 493: Linking Run-Time Images without JMODs
      https://openjdk.org/jeps/493

16:47 Repreviews and finalizations
   JEP 489: Vector API (Ninth Incubator)
      https://openjdk.org/jeps/489
18:27 JEP 484: Class-File API
      https://openjdk.org/jeps/484
19:13 JEP 485: Stream Gatherers
      https://openjdk.org/jeps/485
21:22 JEP 487: Scoped Values (Fourth Preview)
      https://openjdk.org/jeps/487
22:15 JEP 488: Primitive Types in Patterns, instanceof, and switch (Second Preview)
      https://openjdk.org/jeps/488
22:30 How JEPs get finalized and included
23:44 JEP 492: Flexible Constructor Bodies (Third Preview)
      https://openjdk.org/jeps/492
24:09 JEP 494: Module Import Declarations (Second Preview)
      https://openjdk.org/jeps/494
25:07 JEP 495: Simple Source Files and Instance Main Methods (Fourth Preview)
      https://openjdk.org/jeps/495
29:24 JEP 499: Structured Concurrency (Fourth Preview)
      https://openjdk.org/jeps/499

34:04 Deprecations & Restrictions
34:46 JEP 472: Prepare to Restrict the Use of JNI
      https://openjdk.org/jeps/472
37:15 JEP 486: Permanently Disable the Security Manager
      https://openjdk.org/jeps/486
38:53 JEP 490: ZGC: Remove the Non-Generational Mode
      https://openjdk.org/jeps/490
   Trash Talk - Exploring the JVM memory management by Gerrit Grunwald
      https://www.youtube.com/watch?v=Jh79ojcror0
42:09 JEP 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
      https://openjdk.org/jeps/498
45:43 Removal of 32-bit support
   JEP 479: Remove the Windows 32-bit x86 Port
      https://openjdk.org/jeps/479
   JEP 501: Deprecate the 32-bit x86 Port for Removal
      https://openjdk.org/jeps/501

47:37 Should we use Java 24 in production?
51:09 Looking forward to the next LTS in September
54:14 Conclusion

About Foojay.io, the Friends Of OpenJDK!

The podcast of foojay.io, a central resource for the Java community’s daily ​information needs, a place for friends of OpenJDK, ​and a community platform for the Java ecosystem​ — bringing together and helping Java professionals everywhere.

Listen at ...

Follow us ...