Skip to main content

Java 27 is here: The most important changes

Illustration of modern software development

Java 27 was released on September 15, 2026 and is the latest feature release of the Java platform. It includes nine JDK Enhancement Proposals (JEPs) covering security, performance, memory efficiency, concurrency, libraries, and developer tooling.

What is new in Java 27?

Stronger security and post-quantum cryptography

JEP 527 adds post-quantum hybrid key exchange for TLS 1.3. It combines a traditional algorithm with a quantum-resistant algorithm. Applications using the javax.net.ssl APIs benefit by default without changes to existing code.

JEP 538 delivers the third preview of the PEM encoding API, making it easier to encode and decode cryptographic keys, certificates, and certificate revocation lists.

Primitive types in patterns, instanceof, and switch

JEP 532 is the fifth preview of support for primitive types in pattern matching, instanceof, and switch. The goal is a more uniform language with fewer special cases when working with primitive values.

G1 becomes the default garbage collector everywhere

With JEP 523, HotSpot now selects G1 by default in every environment, including constrained environments where the JVM previously selected Serial GC. Existing systems should still be benchmarked before a production upgrade.

Compact Object Headers enabled by default

JEP 534 makes Compact Object Headers the default on 64-bit architectures. Object headers shrink from 96 to 64 bits, which can reduce heap usage, improve data locality, and lower garbage-collection pressure. The feature can be disabled with -XX:-UseCompactObjectHeaders.

Lazy Constants

JEP 531, in its third preview, introduces an API for constants initialized only when first needed. This can reduce unnecessary startup work in cloud-native and data-intensive applications.

Structured Concurrency continues

JEP 533 is the seventh preview of Structured Concurrency. It treats related tasks running in different threads as one unit of work, simplifying cancellation, error handling, and observability, especially with virtual threads.

Vector API enters its twelfth incubator

JEP 537 continues the Vector API, allowing the JVM to compile vector computations into efficient CPU instructions for analytics, scientific computing, and AI inference.

Safer diagnostics with JFR

JEP 536 enables Java Flight Recorder to redact command-line arguments, environment variables, and system properties before recording data leaves the process. Common patterns such as password, secret, token, and API key are filtered by default.

Other important runtime changes

  • jcmd gains Bash autocompletion and a new VM.security_properties command.
  • VM.info and fatal error logs now report the number of open file descriptors.
  • JSON thread dumps write thread IDs, counts, and process IDs as numbers rather than strings.
  • Several deprecated JVM flags have been removed or replaced, including -noverify and -Xverify:none.
  • The experimental JVM Compiler Interface (JVMCI) and -XX:+UseGraalJIT have been removed from OpenJDK 27.

Is Java 27 an LTS release?

No. Java 27 is a regular feature release. Java 25 remains the latest long-term support release. For most organizations, Java 25 is the safer long-term choice, while Java 27 is well suited to testing, learning, and projects that want early access to the latest improvements.

Should you upgrade now?

Java 27 is worth adopting immediately in development and test environments. Before production use, verify framework, build-tool, driver, and monitoring compatibility. Test memory use and latency because G1 and Compact Object Headers are now defaults, and review startup flags for removed or renamed options.

A practical upgrade plan is to run automated tests on Java 27, compare performance with the current JDK, inspect logs and JFR recordings, and then roll out gradually.

In short

Java 27 is not a syntax revolution, but it is a solid release with practical improvements to security, memory efficiency, concurrency, and operations. G1 everywhere, compact object headers, and safer JFR recordings will be the most visible changes for many systems.

Sources

Oracle Java team: The Arrival of Java 27

Oracle Java team: JDK 27 Runtime Updates Release Notes