Java News: JDK 26 Performance Deep Dive and Micronaut 5.0 GA, 2026-06-26
java

Java News: JDK 26 Performance Deep Dive and Micronaut 5.0 GA, 2026-06-26

4 min read

JDK 26 Performance Improvements: A Detailed Breakdown

The Inside Java team published a detailed post cataloguing the performance improvements shipped in JDK 26, grouping changes across four areas: JDK libraries, garbage collection, the JIT compiler, and the runtime itself. Released in March 2026, JDK 26 fixed more than 2,500 issues including over 1,000 enhancements, and the performance work cuts across both startup time and sustained throughput.

In the library layer, the Lazy Constants API (JEP 526, second preview) lets developers declare values using java.lang.LazyConstant so the JVM can treat them as true constants after initialization — enabling constant folding without forcing eager startup work. MemorySegment::getString now avoids intermediate allocations when converting off-heap data to Java strings, a win for hot paths in native-interop code. Record class hashCode() methods now match the performance of hand-written implementations, and cryptographic operations for AES, ML-DSA, and Elliptic Curve P-256 benefit from reduced key-setup overhead and improved CPU-specific intrinsics.

Garbage collection saw the biggest headline improvement: JEP 522 introduces a dual card-table design for G1 that eliminates synchronization between application threads and the background optimizer. Benchmarks showed 5–15% throughput gains in reference-heavy workloads and around 5% improvement even when reference updates are light, while pause times dropped slightly with only ~0.2% additional heap overhead. The ahead-of-time (AOT) cache now works with any garbage collector including ZGC (JEP 516), meaning low-latency applications no longer need to trade warmup speed for GC choice. Initial heap size was reduced to MinHeapSize by default, which shaves startup time for containers and functions that rely on default JVM configuration.

In the runtime, virtual threads gained an important improvement: they now unmount from their carrier thread during class initialization waits rather than pinning (JDK-8369238). This is one of the last remaining scenarios where a virtual thread would block a carrier, so removing it reduces throughput loss and carrier starvation in applications with many concurrent virtual threads and active class loading. All of these improvements require no application code changes — updating to JDK 26 is sufficient to benefit.

Read more — Inside Java


Micronaut Framework 5.0 Goes GA with Java 25 Baseline

The Micronaut Foundation released Micronaut Framework 5.0 on May 20, 2026, marking the first major version in nearly three years and a broad refresh across 70+ modules. The headline change is a new Java 25 baseline, aligning Micronaut with the current long-term-support release and unlocking modern language features including virtual threads (stable since JDK 21), structured concurrency APIs, and sequenced collections throughout the framework's internals.

The IoC container received the most significant internal work: precomputed bean indexes and compile-time @Replaces handling reduce startup time and runtime overhead, further extending Micronaut's lead in cold-start latency compared to reflection-based frameworks. HTTP/3 support via Netty graduated to stable in this release, and multipart form handling was refactored with a lower-level API and improved resource management. The framework adopted JSpecify nullability annotations via @NullMarked across the codebase, which improves static analysis accuracy and reduces IDE warnings when using Kotlin.

The dependency refresh is substantial. Jackson upgrades to version 3, with build-time serializer/deserializer generation via SourceGen reducing reflection use at runtime. Hibernate ORM moves to 7.3.4, Kafka to 4.2.0, and RabbitMQ to 5.30.0. Cloud SDK versions cover AWS SDK v2 at 2.44.7, Azure SDK 1.3.6, and updated GCP integrations. Notably, the AI module now includes native MCP (Model Context Protocol) support via LangChain4j 1.15.0, making it easier to build tool-calling agents on Micronaut without additional wiring. GraalVM is updated to 25.0.3, and native compilation benefits from the improved AOT pipeline.

For teams on Micronaut 4, an official upgrade guide is available from the Foundation. The release is available from Maven Central, and the Micronaut Launch scaffolding tool has been updated to default to version 5.

Read more — Micronaut Framework


Stanislav Lentsov

Written by

Stanislav Lentsov

Software Architect

You May Also Enjoy