JDK 27 уже в календаре: что это меняет для Java-команд
JDK 27 уже в графике: что реально известно и как это использовать
На официальной странице проекта OpenJDK появилась карточка JDK 27 с расписанием и списком функций. Это не анонс и не маркетинговый материал — просто инженерный план с датами и статусами. Именно такой формат удобен для команд: есть конкретные числа, есть конкретные изменения, и можно спокойно планировать работу без спешки.
Разберём, что сейчас подтверждено, что ещё может измениться, и как Java-команде встроить этот релиз в рабочий процесс.
Текущий статус: Rampdown Phase One
По состоянию на 4 июня 2026 года JDK 27 находится в Rampdown Phase One. Это означает следующее:
- Набор функций заморожен — новые JEP в этот релиз больше не принимаются.
- Ветка стабилизации
jdk27открыта исключительно для исправления ошибок и, с явного согласования, для точечных улучшений. - Большинство изменений попадает в ветку через бэкпорты из основной линии разработки.
Это стандартная фаза жизненного цикла JDK-релиза, описанная в JEP 3. Для команд она означает предсказуемость: то, что есть сейчас — это то, что выйдет в сентябре.
Расписание: пять дат, которые стоит занести в календарь
Официальный график JDK 27 выглядит так:
- 4 июня 2026 — Rampdown Phase One (ветка от основной линии). Уже наступила.
- 16 июля 2026 — Rampdown Phase Two. Ещё более строгий отбор изменений, только критичные баги.
- 6 августа 2026 — Initial Release Candidate. Первый кандидат в релиз, пригодный для тестирования в CI.
- 20 августа 2026 — Final Release Candidate. Финальный кандидат.
- 15 сентября 2026 — General Availability. Официальный релиз.
Уже сейчас доступны early-access бинарники под лицензией GPLv2 — можно скачать и начать проверку окружения, не дожидаясь сентября.
Что входит в JDK 27: подтверждённые функции
Поскольку набор функций заморожен, список окончательный. Разберём каждый JEP коротко.
JEP 523: G1 — сборщик мусора по умолчанию везде
G1 GC становится сборщиком мусора по умолчанию во всех средах — включая контейнеры с ограниченной памятью и встраиваемые сценарии. Ранее в некоторых конфигурациях мог использоваться Serial GC. Если ваши сервисы запускаются в Kubernetes с лимитами памяти и вы явно не задаёте -XX:+UseG1GC, поведение изменится. Стоит проверить, нет ли у вас неявной зависимости от предыдущего поведения.
JEP 527: Постквантовая гибридная замена ключей для TLS 1.3
В TLS 1.3 добавляется поддержка гибридного обмена ключами, устойчивого к квантовым атакам. Это не значит, что нужно срочно что-то менять — гибридный режим сочетает классический алгоритм с постквантовым, то есть не ломает совместимость. Актуально для команд, работающих в regulated-средах (финансы, госсектор), где уже начали требовать crypto-agility.
JEP 531: Lazy Constants (Third Preview)
Третий preview ленивых констант. API ещё не финализировано — не стоит использовать в продакшн-коде. Следите за финализацией в JDK 28 или 29.
JEP 532: Примитивные типы в паттернах, instanceof и switch (Fifth Preview)
Пятый preview поддержки примитивов в паттерн-матчинге. Функция явно дозревает дольше обычного. Это сигнал: в прод до финализации — только если вы готовы к возможным изменениям API.
JEP 533: Structured Concurrency (Seventh Preview)
Структурированная конкарентность в седьмом preview. API StructuredTaskScope стабилизируется медленно и осторожно. Если вы используете Virtual Threads через Project Loom — вам интересно следить за этим JEP, но применять в продакшне пока рано.
JEP 534: Compact Object Headers — по умолчанию
Компактные заголовки объектов, введённые как экспериментальная опция раньше, теперь включаются по умолчанию. Это уменьшает размер каждого объекта в куче, что может дать заметную экономию памяти в приложениях с большим числом объектов. Потенциально полезно без каких-либо изменений в коде — но нагрузочное тестирование перед деплоем обязательно.
JEP 536: JFR In-Process Data Redaction
Java Flight Recorder получает встроенный механизм редактирования чувствительных данных до их записи в файл. Актуально для команд, которые используют JFR в production и должны соблюдать требования по защите персональных данных или корпоративной политики безопасности.
JEP 537: Vector API (Twelfth Incubator)
Двенадцатый инкубатор Vector API. API для SIMD-операций всё ещё в инкубации — не финализировать в своих библиотеках до официального релиза.
JEP 538: PEM Encodings of Cryptographic Objects (Third Preview)
Третий preview поддержки PEM-форматов для криптографических объектов напрямую в Java SE. Сейчас это делается через сторонние библиотеки вроде Bouncy Castle. Следим за финализацией.
Что не стоит делать прямо сейчас
Несколько честных предостережений:
- Не планировать миграцию в production до GA. 15 сентября 2026 — это три месяца впереди. Early-access — для тестирования, не для боевых систем.
- Не ожидать магического прироста производительности. Compact Object Headers могут дать ощутимый эффект, но это зависит от профиля вашего приложения. Измеряйте, не экстраполируйте.
- Не торопиться использовать preview-функции. Пять JEP из девяти — в preview или инкубации. Это эксперименты, API которых может измениться в следующем релизе.
- Не откладывать тестирование до сентября. Early-access бинарники уже есть. Лучше начать сейчас, чтобы не обнаружить сюрпризы в момент GA.
Практический план для Java-команды
Что реально имеет смысл сделать в ближайшие месяцы:
- Июнь — июль: Загрузить early-access сборку JDK 27 и прогнать юнит-тесты и интеграционные тесты. Обратить особое внимание на изменение дефолтного GC (JEP 523) и компактные заголовки (JEP 534).
- Август (после 6-го): Взять Initial Release Candidate и прогнать нагрузочные тесты. Сравнить потребление памяти с текущей версией JDK.
- Август — начало сентября: Проверить совместимость инструментов: Maven/Gradle плагины, агенты мониторинга (APM), фреймворки (Spring Boot, Quarkus, Micronaut). Они обычно публикуют совместимость незадолго до или сразу после GA.
- После 15 сентября: Дождаться первого патч-релиза перед миграцией критичных production-сервисов.
Контекст: JDK 27 — это не LTS
JDK 27 — стандартный Feature Release с шестимесячным окном поддержки. Следующий LTS-релиз — JDK 29 (ориентировочно сентябрь 2027). Если ваша команда работает только на LTS (17 или 21), JDK 27 сам по себе не является обязательным апгрейдом. Но отслеживать его функции полезно: часть preview из JDK 27 финализируется в JDK 29.
Команды на JDK 25 или 26, если такие есть, могут рассматривать JDK 27 как плановый апгрейд в рамках rolling-release стратегии.
Итог
JDK 27 выходит 15 сентября 2026 года. Список функций зафиксирован. Из девяти JEP наиболее практически значимы три: изменение дефолтного GC во всех средах (523), компактные заголовки объектов по умолчанию (534) и постквантовая криптография в TLS (527). Остальные шесть — preview и инкубация, за которыми стоит следить, но не внедрять в продакшн.
Начать тестирование можно уже сейчас с early-access бинарниками. Разумный план: функциональные тесты в июне–июле, нагрузочное тестирование в августе на RC, миграция production — после первого патча в октябре.
Источник: OpenJDK — JDK 27