JDK 24: The Magic Number Release That's Supercharging Java
April 17, 2025

Simon Ritter
Azul

The latest Java release demonstrates a satisfying symmetry — JDK24 delivers exactly 24 JDK Enhancement Proposals (JEPs). Released on March 18, the newest update brings substantial improvements that address key operational challenges facing DevOps teams. With 14 production-ready features and 10 experimental and preview capabilities, JDK 24 offers meaningful enhancements for containerized deployments, microservices architectures, and cloud-native applications.


Let's dive into the most significant changes that will reshape how DevOps teams tackle Java deployment challenges in modern production environments.

Virtual Threads: The Game-Changer for Legacy Workloads

The introduction of virtual threads in JDK 21 marked a turning point for Java's concurrency model, promising millions of lightweight threads with minimal resource overhead. For DevOps teams managing high-throughput services in resource-constrained environments, this innovation offered a path to dramatic improvements in infrastructure utilization. However, a critical limitation dampened enthusiasm: synchronized blocks would "pin" virtual threads to carrier platform threads, effectively neutralizing many performance benefits in typical enterprise applications.

JEP 491 elegantly solves this problem by moving monitor association from platform threads to virtual threads. This architectural shift means virtual threads can now freely enter synchronized blocks without becoming bound to a platform thread — they can be unmounted and remounted naturally, even inside synchronized code. For DevOps professionals, this can translate to significantly improved performance metrics in cloud deployments and compute-intensive applications like AI workloads. Legacy codebases heavy with synchronized blocks — previously prime candidates for expensive rewrites — can now harness virtual thread benefits with minimal changes. This enhancement removes perhaps the most significant barrier to broad virtual thread adoption across enterprise applications.

Stream API Gets User-Definable Intermediate Operations

The Streams API introduced in Java 8 transformed how developers process collections, bringing functional programming patterns to mainstream Java. Until now, developers could customize terminal operations through the Collector interface but were limited to a fixed set of built-in intermediate operations. JEP 485 changes this with the new Gatherer interface, allowing developers to create custom intermediate stream operations with the same flexibility previously reserved for terminal operations. This enhancement is a useful expansion of the capabilities of the Streams API.

Developers can now create specialized filtering patterns or implement unique transformations that combine elements in specific ways. This functionality allows teams to encapsulate that logic in a reusable gatherer instead of chaining multiple operations together or falling back to imperative code, resulting in more maintainable and efficient code.

Startup Times Improved with Ahead-of-Time Class Loading

Java's "write once, run anywhere" approach — while providing excellent portability — has traditionally had performance costs, particularly during application startup. When launching a Java application, the JVM must load, verify, and link class files, a process that can add overhead.

JEP 483 introduces ahead-of-time class loading and linking as part of Project Leyden. This enhancement builds on Application Class Data Sharing (introduced in JDK 11) by making application classes instantly available in a pre-loaded and pre-linked state when the JVM starts.

The result is better application startup times by avoiding repeated class processing overhead. For microservices and serverless environments where rapid startup is critical, this improvement offers distinct benefits.

Security Manager: A Legacy Feature Makes Its Exit

Not all enhancements add features; thoughtful removal of outdated functionality often improves the overall platform. JEP 486 permanently disables the Security Manager, an artifact from Java's early days when applets ran in browsers and demanded strict security controls. In today's DevOps landscape, modern containerization, cloud-native security models, and infrastructure-level controls have rendered the Security Manager increasingly irrelevant.

By removing this legacy feature, JDK 24 becomes more streamlined and efficient. However, DevOps teams should note that any applications still relying on the Security Manager will require architectural changes to migrate to JDK 24. This represents a rare case where Java's backward compatibility is deliberately broken, so organizations should conduct thorough inventory assessments before upgrading affected systems.

Farewell to 32-bit x86

JEP 501 marks another step in Java's modernization by deprecating the 32-bit x86 port for removal. With the Windows 32-bit x86 port removed in JDK 24, only the Linux version remains, and it's now officially scheduled for removal. This change reflects the reality that virtually all modern systems run on 64-bit architectures. Maintaining compatibility with older hardware architectures represents an increasingly unnecessary burden on the Java platform.

Unsafe Memory-Access Methods Generate Warnings

The sun.misc.Unsafe class has long served as Java's unofficial interface for systems programming needs. JEP 498 introduces runtime warnings when memory-access methods from Unsafe are invoked, signaling another step toward eventually removing this JDK-internal API.

Modern alternatives like the VarHandle API and Foreign Function & Memory API now provide standardized ways to accomplish what developers previously needed Unsafe for. This change encourages developers to adopt safer and officially supported alternatives.

Looking Forward

JDK 24 represents continued advancement for the 30-year-old Java language. The alignment of 24 JEPs in JDK 24 demonstrates how effectively Java's six-month release cadence delivers regular, meaningful improvements rather than infrequent, disruptive updates.

From a DevOps perspective, the virtual thread improvements alone make this release compelling, while ahead-of-time class loading directly tackles one of the persistent operational challenges teams face: startup latency. These enhancements align perfectly with modern containerized deployment patterns, where fast startup and efficient resource utilization are critical metrics.

As organizations build and deploy microservices architectures, cloud-native applications, and AI workloads, JDK 24 demonstrates that Java remains a platform worth investing in. With the next long-term support release (JDK 25) coming in September 2025, teams have time to evaluate these improvements and plan their adoption strategy. After three decades, Java continues proving its adaptability to evolving infrastructure paradigms, making it as relevant in today's DevOps world as it was in enterprise deployments of the past.

Simon Ritter is Java Champion and Deputy CTO at Azul
Share this

Industry News

May 22, 2025

Red Hat announced enhanced features to manage Red Hat Enterprise Linux.

May 22, 2025

StackHawk has taken on $12 Million in additional funding from Sapphire and Costanoa Ventures to help security teams keep up with the pace of AI-driven development.

May 21, 2025

Red Hat announced jointly-engineered, integrated and supported images for Red Hat Enterprise Linux across Amazon Web Services (AWS), Google Cloud and Microsoft Azure.

May 21, 2025

Komodor announced the integration of the Komodor platform with Internal Developer Portals (IDPs), starting with built-in support for Backstage and Port.

May 21, 2025

Operant AI announced Woodpecker, an open-source, automated red teaming engine, that will make advanced security testing accessible to organizations of all sizes.

May 21, 2025

As part of Summer '25 Edition, Shopify is rolling out new tools and features designed specifically for developers.

May 21, 2025

Lenses.io announced the release of a suite of AI agents that can radically improve developer productivity.

May 20, 2025

Google unveiled a significant wave of advancements designed to supercharge how developers build and scale AI applications – from early-stage experimentation right through to large-scale deployment.

May 20, 2025

Red Hat announced Red Hat Advanced Developer Suite, a new addition to Red Hat OpenShift, the hybrid cloud application platform powered by Kubernetes, designed to improve developer productivity and application security with enhancements to speed the adoption of Red Hat AI technologies.

May 20, 2025

Perforce Software announced Perforce Intelligence, a blueprint to embed AI across its product lines and connect its AI with platforms and tools across the DevOps lifecycle.

May 20, 2025

CloudBees announced CloudBees Unify, a strategic leap forward in how enterprises manage software delivery at scale, shifting from offering standalone DevOps tools to delivering a comprehensive, modular solution for today’s most complex, hybrid software environments.

May 20, 2025

Azul and JetBrains announced a strategic technical collaboration to enhance the runtime performance and scalability of web and server-side Kotlin applications.

May 19, 2025

Docker, Inc.® announced Docker Hardened Images (DHI), a curated catalog of security-hardened, enterprise-grade container images designed to meet today’s toughest software supply chain challenges.

May 19, 2025

GitHub announced that GitHub Copilot now includes an asynchronous coding agent, embedded directly in GitHub and accessible from VS Code—creating a powerful Agentic DevOps loop across coding environments.