Java News: JDK 27 Arrives with G1-by-Default and Compact Headers, Jakarta CDI 5.0 Approved, 2026-09-20
java

Java News: JDK 27 Arrives with G1-by-Default and Compact Headers, Jakarta CDI 5.0 Approved, 2026-09-20

3 min read

JDK 27 Is Generally Available

Oracle released JDK 27 on September 15, 2026, the 18th consecutive on-time feature release under the six-month cadence, with updates provided until March 2027. The release delivers nine JEPs: four finalized, four in preview, and one incubating.

The two headline finalized changes are performance-oriented. JEP 523 makes G1 the default garbage collector in every environment, not just server deployments, retiring the old client-vs-server default split. JEP 534 makes compact object headers (introduced as an opt-in in JDK 25 via JEP 519) the default HotSpot object header layout, shrinking headers from 96 bits to 64 bits on 64-bit architectures — a change that reduces heap footprint and improves cache density for essentially every Java workload without code changes.

On the security side, JEP 527 adds post-quantum hybrid key exchange for TLS 1.3, and JEP 538 introduces PEM encodings for cryptographic objects, giving Java applications a standard library API for a format that previously required third-party libraries or manual parsing. JEP 536 adds JFR in-process redaction of sensitive data in recordings, useful for teams that ship Flight Recorder dumps outside their security boundary.

The preview and incubator lineup carries over familiar work: Lazy Constants (JEP 531), Structured Concurrency (JEP 533, now in its eighth preview round), Primitive Types in Patterns/instanceof/switch (JEP 532), and the Vector API (JEP 537) continue maturing. Oracle credits contributions from Alibaba, Amazon, Google, IBM, Microsoft, NVIDIA, and Red Hat, with independent developers responsible for 16% of fixes.

Read more — Inside.java


Structured Concurrency and AOT Compilation Advance Toward JDK 28, Jakarta CDI 5.0 Approved

The week's InfoQ Java roundup tracked two JEPs advancing toward JDK 28. JEP 543, Structured Concurrency, moved to Candidate status after seven rounds of preview, continuing to refine the API that treats related tasks running on different threads as a single unit of work with unified cancellation and error propagation. JEP 544, Ahead-of-Time Compilation, also reached Candidate status, aimed at improving JVM startup time by making optimized native code available before the JIT has warmed up.

Separately, Jakarta CDI 5.0 was approved by the Jakarta EE Specification Committee — the first specification to formally target Jakarta EE 12, making it an early bellwether for how the rest of the platform's specs will evolve. Open Liberty 26.0.0.9 promoted its MCP Server feature from experimental to general availability and implemented OAuth 2.0 Protected Resource Metadata (RFC 9728); teams currently using the experimental feature need to update their server.xml, since the feature name changed from mcpServer-1.0 to mcp-1.0, a breaking change on upgrade.

On the tooling side, Jim Bethancourt released RefactorFirst 0.10.0, the god-class and code-smell prioritization utility, with JDK 17 as the new minimum and added support for Kotlin source files, letting mixed Java/Kotlin codebases get a unified refactoring priority report. Google also shipped ADK for Kotlin 1.0, bringing its Agent Development Kit to full feature parity with the Java and Python versions, including a new MultiAgentLoader class and a fluent builder() method for configuring agents from Kotlin or Java.

Read more — InfoQ


Stanislav Lentsov

Written by

Stanislav Lentsov

Software Architect

You May Also Enjoy