Skip to content

Build4 publishers3 min readPublished Updated

Java 27 couples post-quantum TLS 1.3 to two newly flipped JVM defaults

JEP 527's hybrid key exchange landed as a stable feature on September 15, and the same JDK makes G1 the collector on small machines and cuts every object header to 64 bits. Serial is still one flag away.

The Engineer · Build desk

Illustration accompanying Java 27 couples post-quantum TLS 1.3 to two newly flipped JVM defaults

What happened

  • Java 27 was released on September 15, 2026, on the six-month cadence, delivering nine JEPs of which four are final, four are previews and one stays in incubator.
  • G1 becomes the default collector in all environments, replacing the Serial fallback that applied to machines with one CPU or less than 1,792 MB of RAM.
  • Oracle added Jipher 20 to the Java Verified Portfolio, wrapping a FIPS 140-3 validated OpenSSL module with support for the ML-KEM and ML-DSA algorithms.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision A team that wants the TLS 1.3 hybrid exchange has to schedule a runtime performance test to get it, because the same JVM upgrade changes object header layout and the collector selection.
  • constraint The deployments whose collector changed are the smallest ones, so anyone running under 1,792 MB has to decide per service whether to keep Serial explicitly or accept G1's profile.
  • contradiction Both publishers document the header and collector defaults precisely, while whether hybrid key exchange is on by default goes undocumented, so an operator cannot record the upgrade as post-quantum coverage without checking the handshake.
  • capability Shops bound to FIPS validation can now reach ML-KEM and ML-DSA through standard Java APIs instead of maintaining a native crypto path.

The important word in JEP 527 is hybrid. The dev.to summary of Oracle's announcement says the release combines traditional algorithms with post-quantum methods to protect data against adversaries who capture encrypted traffic today and decrypt it once quantum hardware exists [5][3]. JetBrains lists the feature among Java 27's stable ones and gives the same threat model, "harvest now, decrypt later" [4]. That protection only reaches connections where the far end also selects a hybrid group. Upgrading the JDK changes what your Java process offers in a handshake; it does not change what a load balancer, an appliance, or a partner's TLS terminator accepts. Neither post says which hybrid groups JDK 27 supports, or whether they are offered by default.

JEP 534 makes compact object headers the default layout in HotSpot, cutting headers from 96 bits to 64 bits on 64-bit architectures, which JetBrains ties to smaller heaps, higher deployment density and better data locality [6]. That is four bytes back per object [8]. The path there was three releases: experimental in Java 24, opt-in in Java 25, default in Java 27 [7].

The G1 change is the one to test first. G1 has been the default collector since Java 9, with an exception: machines with one CPU or under 1,792 MB of RAM fell back to Serial, and Java 27 removes that fallback [9]. JetBrains credits earlier throughput work, including JEP 522 in Java 26, for making G1 good enough to replace Serial [11]. The escape hatch is one line: `-XX:+UseSerialGC` [10]. So the small containers in your fleet are the ones whose collector changed.

Source compatibility stays where it was. In IntelliJ IDEA the non-preview setting for this release is labelled "27 - No new language features", while the preview setting reads "27 (Preview) - Primitive types in patterns, instanceof, and switch (5th preview)" [12]. The dev.to piece presents JEP 532 as making the language more expressive for data-heavy code [13], and using it still requires the preview level, which the IDE highlights at every call site [21].

The rest of the security bundle is thinner than the headline feature. JEP 536 adds in-process redaction to Java Flight Recorder so regulated or personal data can be masked during diagnostics [14], and JEP 538 reaches a third preview for handling cryptographic objects in PEM encodings [15], so certificate-management code that wants it runs behind a preview flag. The Vector API enters its twelfth incubator round [18]. On the compliance side, Oracle Jipher 20 joined the Java Verified Portfolio wrapping a FIPS 140-3 validated OpenSSL module with ML-KEM and ML-DSA support [19], and the dev.to write-up says Oracle Cloud Infrastructure is the first provider to support JDK 27, with its management and security features at no extra cost [20].

What to watch

  • Whether the JDK 27 security documentation names the hybrid groups and states whether a Java client offers them by default.
  • G1 against Serial measurements on containers under 1,792 MB, since that is where the collector default actually changed.
  • Whether JEP 538's PEM handling goes final in Java 28 or takes a fourth preview round.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories