JDK 27 ушёл в Rampdown Phase Two: фичи заморожены, GA — 15 сентября 2026 года

16 июля OpenJDK официально перевёл JDK 27 во вторую фазу Rampdown. Это значит, что фича-сет окончательно зафиксирован на 9 JEP, и дальше разработчиков ждут только баг-фиксы и стабилизация. До General Availability остаётся ровно два месяца — релиз намечен на 15 сентября 2026.

Если вы пишете на Java — стоит уже сейчас понимать, что прилетит осенью. Разбираем самое сочное. 👇

🛠 Что вошло в JDK 27

  1. JEP 523 — G1 стал дефолтным GC во всех средах С Java 9 для систем с 1 CPU и < 1792 MB хипа по дефолту включался Serial GC. Благодаря недавним оптимизациям (включая уменьшение синхронизации в Java 26) и улучшению нативной памяти, G1 теперь не уступает Serial даже на крошечных инстансах. Забудьте про ручное -XX:+UseG1GC — теперь это работает из коробки везде.
  1. JEP 534 — Compact Object Headers по умолчанию Пожалуй, главная perf-плюшка релиза. Заголовок объекта сжимается со 128 до 64 бит (22 бита — class pointer, 31 — hash, 4 зарезервированы под Valhalla). Бенчмарки Oracle показывают крутые результаты:
  • SPECjbb2015 — минус 22% хипа и минус 8% CPU.
  • Количество сборок мусора — минус 15% (и на G1, и на Parallel).
  • Высокопараллельный JSON-парсер — +10% к скорости. Проект Lilliput официально дозрел до продакшена.
  1. JEP 527 — Post-Quantum Hybrid Key Exchange для TLS 1.3 Защита от квантовых атак «уже сейчас». Внедряются три гибридные схемы, комбинирующие классический ECDHE с ML-KEM (постквантовый алгоритм):
  • X25519MLKEM768
  • SecP256r1MLKEM768
  • SecP384r1MLKEM1024 Идея: схема остаётся безопасной, пока хотя бы один из двух алгоритмов не взломан. Если у вас в продакшене TLS 1.3 (а это почти все современные Spring Boot сервисы) — апгрейд даст forward secrecy против квантовых атак «бесплатно».
  1. JEP 536 — JFR In-Process Data Redaction JFR-дампы больше не будут «сливать» пароли из аргументов JVM и переменных окружения. По дефолту чувствительная инфа маскируется, а для тонкой настройки добавили опции к -XX:FlightRecorderOptions:
java -XX:FlightRecorderOptions='redact-key=confidential,redact-argument=https://*:*@*' \
     -XX:StartFlightRecording:filename=dump.jfr \
     -Dconfidential=ANOTHER_SECRET \
     -jar application.jar https://john:SECRET@example.com/login

В дампе вместо паролей вы увидите понятный [REDACTED]. Критично для тех, кто шарит JFR-файлы в баг-репортах и саппорту.

📦 Preview & Incubator

Ни одна крупная фича в этот релиз не вышла из стадии preview. Все ждут релиза Valhalla. Что остаётся на доработке:

  • JEP 531 — Lazy Constants (3rd Preview): убрали низкоуровневые isInitialized/orElse, добавили фабрику Set.ofLazy(...).
  • JEP 532 — Primitive Types in Patterns, instanceof, and switch (5th Preview).
  • JEP 533 — Structured Concurrency (7th Preview): серьёзный рефакторинг Joiner API — awaitAll() убран, теперь используются allSuccessfulOrThrow(), anySuccessfulOrThrow() и др.
  • JEP 537 — Vector API (12th Incubator): пока ждут Valhalla, API топчется на месте.
  • JEP 538 — PEM Encodings of Cryptographic Objects (3rd Preview): DEREncodable переименован в BinaryEncodable.

⚡ Маленькие, но приятные улучшения

  • HashMap.putAll() стал на 66–86% быстрее при копировании из другой HashMap благодаря fast-path через putHashMapEntries().
  • AVX2 intrinsic для бинарного поиска: для массивов int > 256 элементов ускорение составляет в 1.5–2.35 раза.
  • Новые методы в Math / StrictMath: acosh, asinh, atanh — гиперболические обратные функции (наконец-то!).
  • String.encodedLength(Charset) — позволяет узнать длину строки в байтах для указанной кодировки без аллокации промежуточного массива.
  • BigDecimal.rootn(int, MathContext) — извлечение n-ного корня с округлением.
  • DateTimeFormatter теперь понимает короткие таймзон-оффсеты (например, +01 вместо +01:00).
  • Новый инструмент jcmd VM.security_properties для листинга активных security-свойств.
  • Утилита jcmd теперь официально поддерживает bash completion.

💡 Что это даёт на практике?

  1. Просто поднимите версию JVM до 27 — и вы получите меньшее потребление памяти, оптимизацию CPU и уменьшение GC-пауз без единой строчки кода. Спасибо Lilliput и JEP 523.
  2. Безопасники будут счастливы: JFR-дампы больше не утекают секретами, а TLS готов к постквантовой эре.
  3. Если вы используете Spring Boot 3.x / 4.x с встроенным Tomcat — апгрейд JDK до 27 должен пройти максимально гладко, так как базовые дефолты стали более оптимизированными.

🤔 А что со Spring?

Spring Framework 7 и Spring Boot 4 уже на горизонте. Учитывая, что GA JDK 27 состоится в сентябре, официальную поддержку Java 27 в минорных релизах Spring Boot 4.x можно смело ожидать до конца года. Разработчики из Broadcom обычно оперативно адаптируют фреймворк под свежие релизы Java.

💬 А вы уже пробовали собирать проекты на ранних билдах JDK 27? Планируете обновляться сразу после GA или подождёте первых патчей? Пишите в комментариях!

2 views