Java released version 27 on September 15, 2026, following the semiannual release cycle. It includes nine JEP initiatives, four of which are now stable, while four other features continue through the preview stages, and one API remains in the incubation stage. JetBrains says IntelliJ IDEA has supported Java 27 since day one, including the release’s stable and preview features.
What Became Stable
The most significant operational change is the adoption of the G1 garbage collector as the default in all HotSpot JVM environments. In previous releases, devices with one processor or less than 1,792 megabytes of memory used Serial GC. Following the improvements made to G1, it is now the default option even in these environments, while Serial GC can still be selected manually with the -XX:+UseSerialGC option when needed.
Java 27 also adds a hybrid post-quantum key exchange to TLS 1.3. This change targets the “harvest now, decrypt later” model, in which an attacker can record data that is currently encrypted and attempt to decrypt it in the future when sufficient quantum capabilities become available.
Compact object headers have also become the default option in the HotSpot JVM. This change reduces the header size from 96 to 64 bits on 64-bit architectures, which may reduce memory consumption, increase deployment density, and improve data locality, particularly in applications that create large numbers of objects. JetBrains noted that its development environments observed consistent memory savings when using this feature.
The fourth stable improvement adds to JDK Flight Recorder the ability to redact command-line arguments, the initial values of environment variables, and system properties before the recording leaves the process, reducing the risk of sensitive information leakage.
Preview and Incubating Features
Java 27 continues the development of lazy constants, which are evaluated only when needed; primitive type patterns in instanceof and switch; structured concurrency; and PEM encodings for cryptographic objects. These features are not final and may change before adoption, so IntelliJ IDEA allows them to be used only with the current JDK release when language level 27 (Preview) is enabled.
The Vector API remains in an incubating module. It enables the expression of vector operations that can be translated into suitable instructions for supported processors. To use it, the module must be added explicitly with the --add-modules jdk.incubator.vector option, confirming that it is not yet intended for stable production use.
What Changes in Practice for Developers?
JDK 27 can be downloaded from IntelliJ IDEA settings or an already installed development environment can be linked. The program can also read .sdkmanrc and .tool-versions files to configure the JDK version automatically when using SDKMAN! or asdf. Support also includes highlighting preview features in the editor, helping teams identify locations that depend on interfaces subject to change.
Java 27 also includes a fix for slow navigation during debugging, and JetBrains backported this fix to JetBrains Runtime 25. For teams that do not want to move to Java 27 yet, this may enable them to benefit from the improvement through JBR 25 or through a version of JDK 25 that includes the fix.
Java 27 is not a long-term support release, but its stable changes affect memory management, communications security, and the integrity of recorded data, rather than merely adding language features. At the same time, preview and incubating features remain unsuitable for final production decisions, and adopting G1 by default does not eliminate the need to test resource-constrained applications that may benefit from Serial GC.