JDK 27 ушёл в Rampdown Phase Two: фичи заморожены, GA — 15 сентября 2026 года
16 июля OpenJDK официально перевёл JDK 27 во вторую фазу Rampdown. Это значит, что фича-сет окончательно зафиксирован на 9 JEP, и дальше разработчиков ждут только баг-фиксы и стабилизация. До General Availability остаётся ровно два месяца — релиз намечен на 15 сентября 2026.
Если вы пишете на Java — стоит уже сейчас понимать, что прилетит осенью. Разбираем самое сочное. 👇
🛠 Что вошло в JDK 27
- JEP 523 — G1 стал дефолтным GC во всех средах С Java 9 для систем с 1 CPU и < 1792 MB хипа по дефолту включался Serial GC. Благодаря недавним оптимизациям (включая уменьшение синхронизации в Java 26) и улучшению нативной памяти, G1 теперь не уступает Serial даже на крошечных инстансах. Забудьте про ручное
-XX:+UseG1GC— теперь это работает из коробки везде.
- 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 официально дозрел до продакшена.
- JEP 527 — Post-Quantum Hybrid Key Exchange для TLS 1.3 Защита от квантовых атак «уже сейчас». Внедряются три гибридные схемы, комбинирующие классический ECDHE с ML-KEM (постквантовый алгоритм):
X25519MLKEM768SecP256r1MLKEM768SecP384r1MLKEM1024Идея: схема остаётся безопасной, пока хотя бы один из двух алгоритмов не взломан. Если у вас в продакшене TLS 1.3 (а это почти все современные Spring Boot сервисы) — апгрейд даст forward secrecy против квантовых атак «бесплатно».
- 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): серьёзный рефакторинг
JoinerAPI —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.
💡 Что это даёт на практике?
- Просто поднимите версию JVM до 27 — и вы получите меньшее потребление памяти, оптимизацию CPU и уменьшение GC-пауз без единой строчки кода. Спасибо Lilliput и JEP 523.
- Безопасники будут счастливы: JFR-дампы больше не утекают секретами, а TLS готов к постквантовой эре.
- Если вы используете 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 или подождёте первых патчей? Пишите в комментариях!
