Java 26 

Java 26 is a non-LTS feature release following Java 25 LTS. It preceeds Java 27 (September 2026). Non-LTS releases receive updates for six months until the next release ships. 

Java 26 Release Details 

Release DateMarch 17, 2026
LTSNo
OpenJDK End-of-Life September 2026
Class File Version 70.0
Umbrella JSRJSR 401
Unicode Version 17.0.0

Java 26 is not an LTS release. Organizations running production workloads should use Java 25 LTS (September 2025) unless they need specific features from this release and can upgrade again in September 2026. 

Java 26 API Changes 

HTTP/3 for the HTTP Client API (JEP 517) 

The standard java.net.http.HttpClient now supports HTTP/3 (QUIC-based protocol). HTTP/3 eliminates head-of-line blocking at the transport layer by using UDP-based QUIC instead of TCP. The API integrates with the existing HttpRequest/HttpResponse interfaces, so migration from HTTP/2 requires minimal code changes. 

var client = HttpClient.newBuilder() 

    .version(HttpClient.Version.HTTP_3) 

    .build(); 

var request = HttpRequest.newBuilder() 

    .uri(URI.create(“https://example.com”)) 

    .GET() 

    .build(); 

var response = client.send(request, HttpResponse.BodyHandlers.ofString()); 

Remove the Applet API (JEP 504) 

Removes the java.applet package and javax.jnlp (Java Web Start) after deprecation in Java 17 (JEP 398). These APIs were non-functional in modern browsers since the demise of NPAPI plugin support. Applications still referencing java.applet.Applet or javax.jnlp will fail to compile. 

Prepare to Make Final Mean Final (JEP 500) 

Disallows modifying final fields via reflection, method handles, and Unsafe after class initialization completes. Currently, final fields can be modified through these mechanisms despite the language-level contract. This JEP enforces the constraint at the JVM level, enabling performance optimizations that assume true immutability. 

Lazy Constants (Preview, JEP 526) 

An API for lazily computed constants via java.lang.constant.SymbolicConstant. Constants are computed on first access and cached, with the computation captured as a method handle. Second preview, following JEP 523 in Java 25. 

PEM Encodings of Cryptographic Objects (Preview, JEP 524) 

Standard API for encoding and decoding cryptographic objects (keys, certificates, CRLs) in PEM format. Second preview. Eliminates the need for BouncyCastle or custom Base64 wrapping when working with PEM-encoded keys and certificates. 

Java 26 Language Features 

Primitive Types in Patterns (Preview, JEP 530) 

Fourth preview (Java 22-26). Extends pattern matching to primitive types, enabling instanceof and switch with int, double, long, and others. Also allows record patterns to destructure primitive components without boxing. 

Java 26 JVM Performance 

Ahead-of-Time Object Caching with Any GC (JEP 516) 

Extends the AOT class loading and linking framework (JEP 483, Java 24) to cache pre-initialized objects. The JVM can load serialized object graphs at startup, skipping initialization for commonly used framework objects. Works with any garbage collector, not just G1. 

G1 GC: Improve Throughput by Reducing Synchronization (JEP 522) 

Reduces synchronization overhead in G1’s remembered set processing. The remembered set tracks references between heap regions; this JEP replaces fine-grained locking with thread-local buffers. Measurable throughput improvement for applications with high allocation rates and deep object graphs. 

Java 26 Preview and Incubator Features 

JEPFeatureNotes
JEP 530Primitive Types in Patterns Fourth Preview
JEP 525Structured ConcurrencySixth Preview
JEP 526Lazy Constants Second Preview
JEP 524PEM Encodings Second Preview
JEP 529Vector API Tenth Incubator

Who Should Use Java 26 

Non-LTS releases suit teams that want early access to features before the next LTS. Two Java 26 features are worth evaluating before Java 27: 

  1. HTTP/3: If your services communicate over high-latency or lossy networks (mobile, satellite, cross-region), HTTP/3’s QUIC transport reduces connection setup time and eliminates head-of-line blocking 
  1. AOT Object Caching: If startup time matters (CLI tools, serverless, short-lived containers), pre-cached objects reduce time-to-first-request 

For production workloads, Java 25 LTS remains the recommended choice. 

Azul Support for Java 26 

Azul Platform Core provides TCK-certified builds of OpenJDK 26 for teams evaluating the latest features. Azul Zulu builds are available for Linux (x86_64, ARM), Windows, macOS (Intel and Apple Silicon), and Alpine containers. 

For production deployments, Azul supports Java 25 LTS with quarterly critical patch updates, FIPS 140-2 compliant builds, and extended support beyond the OpenJDK end-of-life date. A single subscription covers all supported versions from Java 6 through Java 26. 

Platform Core wide 1x

Contact Us

Contact us to learn more about our migration services, support, modernization services, and more!