Java 26 Is Here: What's New, What's Gone, and Why It Matters in 2026 (#92)
MAR 14, 202649 MIN
Java 26 Is Here: What's New, What's Gone, and Why It Matters in 2026 (#92)
MAR 14, 202649 MIN
Description
<p>Welcome to another episode of the Foojay Podcast! In this episode, we're talking about Java 26, released on March 17 in the year 26. Again, right on schedule with Java's six-month release cadence.</p><p>Now, Java 26 is not a Long Term Support (LTS) release; that was Java 25. But don't let that fool you into thinking there's nothing interesting here. This release brings ten JDK Enhancement Proposals (JEPs). They cover everything from performance improvements to long-overdue cleanups. Of those ten JEPS, five are new features, and we also get five preview/incubator features.</p><p><strong>Guests</strong></p><p>Simon Ritter</p><ul><li><a href="https://www.linkedin.com/in/siritter/" target="_blank">https://www.linkedin.com/in/siritter/</a></li></ul><p>Loïc Mathieu</p><ul><li><a href="https://www.linkedin.com/in/lo%C3%AFc-mathieu-475b144/" target="_blank">https://www.linkedin.com/in/lo%C3%AFc-mathieu-475b144/</a></li></ul><p><strong>Content</strong></p><p>00:00 Introduction of topic and guests</p><p>01:35 Differences between Long and Short Term Support</p><p>05:10 Which Java versions are used by companies</p><ul><li><a href="https://foojay.io/today/foojay-podcast-90-highlights-of-the-java-features-between-lts-21-and-25/">https://foojay.io/today/foojay-podcast-90-highlights-of-the-java-features-between-lts-21-and-25/</a></li></ul><p>07:54 Internal changes and improvements in release 26, highlighting UUIDv7 support</p><ul><li><a href="https://foojay.io/today/java-26-whats-new/">https://foojay.io/today/java-26-whats-new/</a></li></ul><p>12:02 <a href="https://openjdk.org/jeps/500" target="_blank">JEP 500</a>: Prepare to Make Final Mean Final</p><p>13:24 <a href="https://openjdk.org/jeps/526" target="_blank">JEP 526</a>: Lazy Constants (Second Preview)</p><p>16:12 <a href="https://openjdk.org/jeps/517" target="_blank">JEP 517</a>: HTTP/3 for the HTTP Client API</p><ul><li><a href="https://en.wikipedia.org/wiki/HTTP/3" target="_blank">https://en.wikipedia.org/wiki/HTTP/3</a></li><li><a href="https://en.wikipedia.org/wiki/QUIC" target="_blank">https://en.wikipedia.org/wiki/QUIC</a></li></ul><p>18:48 <a href="https://openjdk.org/jeps/504" target="_blank">JEP 504</a>: Remove the Applet API</p><p>20:52 <a href="https://openjdk.org/jeps/524" target="_blank">JEP 524</a>: PEM Encodings of Cryptographic Objects (Second Preview)</p><p>21:59 <a href="https://openjdk.org/jeps/516" target="_blank">JEP 516</a>: Ahead-of-Time Object Caching with Any GC</p><ul><li><a href="https://openjdk.org/projects/leyden/" target="_blank">https://openjdk.org/projects/leyden/</a></li><li><a href="https://docs.azul.com/prime/analyzing-tuning-warmup" target="_blank">https://docs.azul.com/prime/analyzing-tuning-warmup</a></li><li><a href="https://foojay.io/today/faster-java-warmup-crac-versus-readynow/">https://foojay.io/today/faster-java-warmup-crac-versus-readynow/</a></li></ul><p>25:30 <a href="https://openjdk.org/jeps/522" target="_blank">JEP 522</a>: G1 GC: Improve Throughput by Reducing Synchronization</p><ul><li><a href="https://www.youtube.com/watch?v=Jh79ojcror0" target="_blank">Trash Talk - Exploring the JVM memory management by Gerrit Grunwald</a></li></ul><p>28:04 <a href="https://openjdk.org/jeps/525" target="_blank">JEP 525</a>: Structured Concurrency (Sixth Preview)</p><ul><li><a href="https://openjdk.org/projects/loom/" target="_blank">https://openjdk.org/projects/loom/</a></li></ul><p>31:09 <a href="https://openjdk.org/jeps/529" target="_blank">JEP 529</a>: Vector API (Eleventh Incubator)</p><ul><li><a href="https://openjdk.org/projects/panama/" target="_blank">https://openjdk.org/projects/panama/</a></li><li><a href="https://openjdk.org/projects/valhalla/" target="_blank">https://openjdk.org/projects/valhalla/</a></li></ul><p>34:59 When do JEPs get selected to be included in a release</p><ul><li><a href="https://openjdk.org/projects/jdk/26/" target="_blank">https://openjdk.org/projects/jdk/26/</a></li><li><a href="https://openjdk.org/projects/jdk/27/" target="_blank">https://openjdk.org/projects/jdk/27/</a></li></ul><p>38:03 <a href="https://openjdk.org/jeps/530" target="_blank">JEP 530</a>: Primitive Types in Patterns, instanceof, and switch (Fourth Preview)</p><ul><li><a href="https://openjdk.org/projects/amber/" target="_blank">https://openjdk.org/projects/amber/</a></li><li><a href="https://www.youtube.com/watch?v=vZ7P2CigLLQ" target="_blank">Java Puzzlers talk by Simon</a></li></ul><p>42:14 Do we need "Carrier Classes"?</p><ul><li><a href="https://mail.openjdk.org/pipermail/amber-spec-experts/2026-January/004307.html" target="_blank">Amber mailing list: Data Oriented Programming, Beyond Records</a></li><li><a href="https://www.linkedin.com/pulse/java-reaches-gpu-records-fall-off-cliff-gatherers-prove-skowro%C5%84ski-rnqlf/" target="_blank">JVM Weekly newsletter by Artur Skowroński</a></li></ul><p>44:38 What changes does Java need for the AI world?</p><ul><li><a href="https://openjdk.org/jeps/8361105" target="_blank">JEP DRAFT 8361105</a>: Code reflection (Incubator)</li><li><a href="https://openjdk.org/projects/babylon/" target="_blank">https://openjdk.org/projects/babylon/</a></li><li><a href="https://www.tornadovm.org/" target="_blank">https://www.tornadovm.org/</a></li></ul><p>47:53 Remarkable numeric facts about releases</p><p>48:30 Conclusion</p><p><br></p>