Oracle объявила о выпуске Java 27, очередного функционального релиза платформы. Он вышел через полгода после Java 26, как и предусматривает обычный график выпуска.
В релиз вошли девять JDK Enhancement Proposals: изменения в JVM, языковые возможности, криптография, библиотеки и инструменты разработки. Четыре из них находятся в статусе preview, а Vector API по-прежнему остаётся incubation-функцией.
Одно из заметных изменений в Java 27: сборщик мусора G1 теперь выбирается по умолчанию во всех окружениях. Раньше HotSpot JVM в некоторых конфигурациях могла остановиться на Serial GC. Начиная с JDK 27 G1 выбирается всегда, если пользователь не указал сборщик явно.
Компактные заголовки объектов (Compact Object Headers) включены по умолчанию. На 64-битных архитектурах они уменьшают заголовок объекта с 96 до 64 бит. По данным Oracle, это снижает расход памяти в куче, улучшает локальность данных и позволяет разместить больше объектов в том же объёме памяти.
Java 27 также получила гибридный постквантовый обмен ключами для TLS 1.3. Реализация сочетает обычные криптоалгоритмы с устойчивыми к квантовым компьютерам, и приложения, использующие API javax.net.ssl, получают её автоматически, без правок в коде.
В языковой части пятый preview проходит поддержка примитивных типов в patterns, instanceof и switch. Работа направлена на то, чтобы примитивные значения единообразнее участвовали в механизмах сопоставления с образцом, а проверки компилятора для выражений switch стали строже.
Structured Concurrency возвращается в седьмом preview. API упрощает управление группами связанных параллельных задач как единым целым, особенно при отмене, сбоях и завершении задач.
Lazy Constants возвращается в третьем preview. Это API для значений, которые инициализируются только при первом обращении и остаются неизменяемыми.
Vector API проходит 12-ю итерацию в статусе incubator. Он позволяет описывать векторные вычисления, которые JVM компилирует в векторные инструкции CPU на поддерживаемом железе. Основная цель, рабочие нагрузки, где SIMD-обработка даёт заметный прирост производительности.
Ещё одно новшество, JFR In-Process Data Redaction. Java Flight Recorder теперь может вырезать аргументы командной строки, значения переменных окружения и системных свойств до того, как диагностические данные покинут работающий процесс Java. Это не даёт потенциально чувствительной информации о времени выполнения попадать в записи.
Помимо девяти JEP, в JDK 27 вошло много небольших улучшений runtime и инструментов: изменения в расчёте размера кучи G1, оптимизации компилятора, ускорение файлового и нативного ввода-вывода, оптимизации Vector API и рост производительности ряда криптоалгоритмов.
Доработали и диагностические инструменты. Дампы потоков в JSON теперь выводят отдельные идентификаторы и счётчики как числа JSON, а диагностика VM умеет сообщать количество открытых файловых дескрипторов. Для утилиты jcmd добавили автодополнение в Bash.
Подробности приводятся в официальном анонсе. Oracle будет выпускать обновления для JDK 27 до марта 2027 года, после чего его сменит Java 28.




Пока нет комментариев. Будьте первым!