Технологии3 мин чтения
Java 27 вышла 15 сентября: три изменения runtime, которые заметит прод
Java 27 вышла 15 сентября 2026 года и не является LTS-версией: основной релиз для продакшена по-прежнему Java 25, следующим LTS станет Java 29. Тем не менее три изменения runtime в OpenJDK 27 повлияют на память и CPU реальных приложений, поэтому их стоит знать до обновления.

JEP 534: компактные заголовки объектов по умолчанию
Заголовок объекта на 64-битной JVM сокращается с 96–128 до 64 бит. Для приложений с миллионами мелких объектов это экономия heap на 10–20 %, но точная цифра зависит от структуры объектного графа: у одних сервисов выигрыш заметный, у других почти нулевой. Изменение включено по умолчанию, поэтому проявится сразу.

Правило «не LTS — только на стенде» экономит нервы так же, как правило «не обновлять CMS на проде без копии». Java 27 стоит поставить на тестовый контур ради нагрузочных замеров, а не ради флажка «свежая версия».
JEP 523: G1 везде
Сборщик мусора G1 теперь используется по умолчанию во всех окружениях. Раньше маленькие контейнеры с одним процессором и небольшим объёмом памяти получали Serial GC. Для таких сервисов изменится потребление CPU и профиль пауз: G1 работает параллельно и предсказуемее по паузам, но требует больше ресурсов на фоне.
JEP 536: секреты скрываются в JFR
Java Flight Recorder автоматически фильтрует значения по ключам вроде password, token, secret, credential, api-key, private-key и client-secret. Это дополнительный слой защиты записей профилировщика, но не замена хранилищам секретов и управлению доступом.
Удалённые флаги и диагностика
Проверьте скрипты запуска: несколько опций окончательно удалены или переименованы.
- Удалены: -noclassgc, -noverify, -verifyremote, -Xverify:none.
- Переименован: -XX:InitiatingHeapOccupancyPercent → -XX:G1IHOP; -XX:UseCompressedClassPointers устарел.
- Новая команда jcmd <pid> VM.security_properties показывает конфигурацию TLS.
- Thread dump в JSON получил formatVersion 2 и числовые значения вместо строк, например "tid": 42.
Что делать перед обновлением
Прогнать нагрузочные тесты и сравнить расход памяти и профиль CPU до и после, особенно для контейнеров с ограниченными ресурсами. Убедиться, что скрипты запуска не используют удалённые флаги, а парсеры дампов понимают новый формат JSON. Если продакшен на LTS-ветке, Java 27 остаётся версией для стендов и раннего знакомства с изменениями, которые придут в Java 29.
Итог
Java 27 — не LTS, но её изменения runtime реальные: тоньше заголовки, G1 по умолчанию, скрытие секретов в JFR. Проверяйте на тестах, обновляйте скрипты, а продакшен держите на Java 25 до Java 29.
Источники
Подписаться на журнал
Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.


