Java выпустила версию 27 15 сентября 2026 года в рамках полугодового цикла релизов. В неё входят девять инициатив JEP: четыре из них стали стабильными, ещё четыре функции продолжают проходить этапы предварительного просмотра, а один API остаётся на стадии инкубации. JetBrains заявляет, что IntelliJ IDEA поддерживает Java 27 с первого дня, включая стабильные функции и функции предварительного просмотра, представленные в этом выпуске.
Что стало стабильным
Самое значительное операционное изменение — использование сборщика мусора G1 по умолчанию во всех средах HotSpot JVM. В предыдущих версиях устройства с одним процессором или менее чем 1 792 мегабайтами памяти использовали Serial GC. После улучшений, внесённых в G1, он стал вариантом по умолчанию даже в таких средах, при этом возможность выбрать Serial GC вручную с помощью параметра -XX:+UseSerialGC при необходимости сохраняется.
Java 27 также добавляет гибридный обмен ключами для постквантовой защиты в TLS 1.3. Это изменение направлено на противодействие сценарию «собери сейчас, расшифруй позже»: злоумышленник может записать зашифрованные данные сейчас и попытаться расшифровать их в будущем, когда появятся достаточные квантовые вычислительные возможности.
Сжатые заголовки объектов также стали вариантом по умолчанию в HotSpot JVM. Это изменение уменьшает размер заголовка с 96 до 64 бит на 64-битных архитектурах, что может снизить потребление памяти, повысить плотность развёртывания и улучшить локальность данных, особенно в приложениях, создающих большое количество объектов. JetBrains отметила, что её среды разработки продемонстрировали стабильную экономию памяти при использовании этой функции.
Четвёртое стабильное улучшение добавляет в JDK Flight Recorder возможность редактировать аргументы командной строки, исходные значения переменных окружения и системные свойства до того, как запись покинет процесс, чтобы ограничить утечку конфиденциальной информации.
Функции предварительного просмотра и инкубации
Java 27 продолжает развивать ленивые константы, которые вычисляются только при необходимости, шаблоны примитивных типов в instanceof и switch, структурированную конкурентность и кодировки PEM для криптографических объектов. Эти функции ещё не являются окончательными и могут измениться до утверждения, поэтому IntelliJ IDEA позволяет использовать их только с текущей версией JDK при включённом уровне языка 27 (Preview).
Vector API остаётся в инкубационном модуле. Он позволяет выражать векторные операции, которые могут быть преобразованы в подходящие инструкции для поддерживаемых процессоров. Для его использования модуль необходимо явно добавить с помощью параметра --add-modules jdk.incubator.vector, что подтверждает его пока неготовность для стабильного использования в production-средах.
Что практически меняется для разработчиков?
JDK 27 можно скачать в настройках IntelliJ IDEA или подключить уже установленную среду разработки. Программа также умеет читать файлы .sdkmanrc и .tool-versions, чтобы автоматически настроить версию JDK при использовании SDKMAN! или asdf. Поддержка также включает выделение функций предварительного просмотра в редакторе, что помогает командам видеть участки, зависящие от изменяемых API.
Java 27 также содержит исправление замедления навигации во время отладки, и JetBrains перенесла это исправление в JetBrains Runtime 25. Команды, которые пока не хотят переходить на Java 27, могут воспользоваться этим улучшением через JBR 25 или версию JDK 25, включающую исправление.
Java 27 не является релизом с долгосрочной поддержкой, однако стабильные изменения в ней затрагивают управление памятью, безопасность соединений и защиту данных записи, а не только добавление языковых возможностей. При этом функции предварительного просмотра и инкубации по-прежнему не подходят для окончательных производственных решений, а использование G1 по умолчанию не отменяет необходимости тестировать приложения в условиях ограниченных ресурсов, которым может быть полезен Serial GC.