Вышла Java 27: JVM стала экономнее, но старые флаги могут сломать запуск

Не LTS-релиз, но есть свои интересности

Вышла Java 27: JVM стала экономнее, но старые флаги могут сломать запуск

15 сентября 2026 года вышла Java 27. Это не LTS-релиз, а потому новых возможностей языка здесь немного. 

Зато JVM получила несколько изменений, которые могут заметно повлиять на уже работающие приложения — особенно в контейнерах и production-средах.

Читают прямо сейчас:

Что такое сборщик мусора в программировании — как работают G1 и Serial GC и почему смена дефолтного сборщика в Java 27 изменит поведение небольших контейнеров

Что такое Java и зачем он нужен — как устроена JVM и почему изменения в заголовках объектов дают 10–20% экономии памяти в нагруженных приложениях

Что такое JDK и как начать с ним работать — какие дистрибутивы JDK оптимизированы под контейнеры и что проверить перед обновлением на Java 27 в production

Заголовки объектов стали компактнее

Главное изменение — Compact Object Headers теперь включены по умолчанию. Механизм уменьшает служебную часть объектов на 64-битных JVM и в некоторых приложениях способен сократить занимаемое кучей место на 10–20%.

Особенно заметен эффект у систем, которые создают огромное количество небольших объектов: DTO, элементов коллекций, прокси и различных служебных структур. Но ждать автоматического уменьшения, например, лимита контейнера с 2 до 1,6 ГБ не стоит. Экономия зависит от структуры конкретного приложения.

Поэтому перед изменением -Xmx лучше сравнить live set, allocation rate, частоту GC и latency на реальной нагрузке.

G1 теперь выбирается даже для маленьких контейнеров

В Java 27 убрали исключение, из-за которого JVM могла выбирать Serial GC в окружениях с ограниченными ресурсами. Теперь G1 становится сборщиком по умолчанию независимо от размера машины.

Для обычного сервера это может пройти незаметно. А вот небольшой Spring Boot сервис с лимитом в несколько сотен мегабайт и долями CPU после обновления способен получить другой профиль нагрузки: изменятся служебные расходы GC, количество потоков и поведение пауз.

Если Serial GC использовался намеренно, его теперь стоит указывать явно через XX:+UseSerialGC. В остальных случаях конфигурацию лучше проверить до обновления и сравнить метрики Java 25/26 и Java 27.

JFR научился прятать пароли и токены

Java Flight Recorder в Java 27 автоматически редактирует чувствительные значения в аргументах JVM, переменных окружения и системных свойствах. В стандартный список попали названия вроде password, token, secret, credential, api-key и private-key.

Это снижает риск случайно отправить пароль или токен вместе с JFR-файлом при диагностике проблем. При необходимости можно добавить собственные правила редактуры.

Однако JFR не становится полностью безопасным хранилищем: приложение все еще может самостоятельно записать секрет в пользовательское событие, лог или сообщение об ошибке. Поэтому доступ к диагностическим файлам по-прежнему нужно ограничивать.

Старые JVM-флаги могут сломать запуск

В Java 27 удалены устаревшие параметры -noclassgc, -noverify, -verifyremote и -Xverify:none. Это важно для старых Dockerfile, скриптов запуска и конфигураций CI. Если такой флаг где-то остался, приложение может не запуститься после обновления.

Также переименован параметр -XX:InitiatingHeapOccupancyPercent — новое имя XX:G1IHOP. Старое пока работает, но уже считается устаревшим.

Кроме того, изменился JSON-формат дампов потоков: идентификаторы и счетчики теперь записываются числами, а в корневом объекте появился formatVersion: 2. Если внутренние инструменты разбирают такие дампы, их придется проверить.

Что проверить перед обновлением

Java 27 интересна не столько языковыми нововведениями, сколько изменениями поведения JVM. 

Перед переходом стоит проверить три вещи: реальное потребление heap с Compact Object Headers, работу G1 в небольших контейнерах и совместимость скриптов с удаленными JVM-флагами.

Отдельно стоит протестировать инструменты диагностики, если они используют JSON thread dump или JFR.

Большая скидка — 16% на все курсы Практикума

Если вы читаете эту новость, тогда вы точно разбираетесь в технологиях. Стать лучше и зарабатывать больше можно после курсов Практикума — по искусственному интеллекту, анализу данных и программированию.

До 17 сентября на все курсы действует скидка 16%, она применится автоматически при оплате!

В Практикуме есть программы для начинающих и специалистов с опытом, которые хотят обновить знания или освоить новое направление.

Соцсети: Юлия Зубарева
Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
easy