Выпущен JDK 25 LTS с экспортерами ключей TLS и улучшенной отладкой

Выпущен JDK 25 LTS с экспортерами ключей TLS и улучшенной отладкой


Новая долгосрочная версия JDK 25 LTS теперь доступна для скачивания, улучшая работу с IO, HTTP, многопоточностью и TLS, а также удаляя устаревшие системные свойства.

Сообщество Java имеет причины для радости, так как долгожданная JDK 25 была официально выпущена как версия с долгосрочной поддержкой (LTS). Иными словами, это делает её одной из тех версий, на которые предприятия и разработчики будут полагаться в течение многих лет. Однако особое внимание в этом релизе привлекает сильный акцент на безопасность.

В связи с этим JDK 25 вводит ограничения, специфичные для протокола TLS, через свойство jdk.tls.disabledAlgorithms, предоставляя администраторам более строгий контроль над алгоритмами рукопожатия и подписи сертификатов. Кроме того, теперь в JSSE и SunJSSE поддерживаются экспортеры ключевого материала TLS в соответствии с RFC 5705 и RFC 8446.

Также стоит отметить, что добавлены новые алгоритмы MessageDigest SHAKE128-256 и SHAKE256-512, а также поддержка HKDF в SunPKCS11. Кроме того, реализация XML-подписей была обновлена до Santuario 3.0.5 с поддержкой подписей ECDSA на основе SHA-3.

В основные библиотеки внесены несколько полезных изменений. Теперь разработчики могут использовать Reader.readAllAsString() и Reader.readAllLines() для более простой работы с текстом, а stdin.encoding вводит стандартный способ проверки или изменения кодировки, используемой System.in.

В java.lang был добавлен новый метод getChars(int, int, char[], int) в CharSequence и CharBuffer, что делает массовое чтение символов более эффективным. Также обновлены сетевые API: в HttpClient появились новые способы ограничения размера тела ответа и метод connectionLabel для лучшей идентификации HTTP-соединений.

Кроме того, поставщик системы ZIP-файлов теперь позволяет монтировать архивы в режиме только для чтения, что полезно в сценариях, где важны целостность и неизменность.

Что касается улучшений отладки, JDK 25 обновляет вывод системного свойства java.security.debug:

  • Старые параметры +thread и +timestamp (введённые в JDK 23) больше не оказывают никакого эффекта.
  • Теперь по умолчанию включаются идентификатор потока, имя потока, местоположение вызывающего и временные метки.

Кроме того, сборщик мусора G1 снижает нагрузку на память за счет группировки регионов в общие карточные наборы, что сокращает время пауз при смешанных коллекциях. Кроме того, компактные заголовки объектов, введенные в JDK 24, теперь доступны как поддерживаемая продуктовая опция, что потенциально уменьшает объем памяти кучи Java.

Java Flight Recorder (JFR) получает новую аннотацию @Contextual, позволяющую разработчикам связывать информацию о более высокоуровневых запросах — такую как идентификаторы трассировки — с низкоуровневыми событиями, например, конфликтами блокировок. Снимки потоков, создаваемые с помощью HotSpotDiagnosticMXBean и jcmd, теперь также включают данные о блокировках и ссылку на схему JSON для лучшей поддержки инструментов.

Как и с каждым выпуском LTS, некоторые устаревшие функции выводятся из эксплуатации. JDK 25 удаляет несколько устаревших корневых сертификатов (Baltimore CyberTrust, Camerfirma), запрещает устаревшие конструкторы Socket для датаграммных сокетов и убирает редко используемый семплинг PerfData.

Кроме того, несколько классов разрешений, связанных с устаревшим Security Manager, помечены как устаревшие и будут удалены, что отражает более широкое отхождение от этой модели. Опция UseCompressedClassPointers также устарела и будет удалена в будущей версии, при этом сжатые указатели теперь используются по умолчанию.

И наконец, но не менее важно, с выпуском JDK 25 Java официально прекратила поддержку устаревающей 32-битной архитектуры x86. Этот шаг осуществляется через JEP 503, который удаляет как исходный код, так и поддержку сборки для этого давнего порта.

Это решение последовало за устареванием в JDK 24 согласно JEP 501 в прошлом году, что делает его удаление ожидаемым, но все же значимым для всех, кто опирается на устаревшие 32-битные системы. Хотя интерпретатор Zero остается доступным в качестве резервного варианта для запуска Java на менее распространенных 32-битных платформах, основная поддержка теперь полностью сосредоточена на 64-битном оборудовании.

Конечно, JDK 25 LTS дополнительно включает сотни мелких улучшений и бесчисленное количество исправлений ошибок. Чтобы ознакомиться со всеми изменениями подробнее, посетите примечания к выпуску.

Как я упомянул в начале, JDK 25 является последней версией с долгосрочной поддержкой, следуя за JDK 21 из 2023 года, поддержка которой продлится до 2029 года, и JDK 17 из 2021 года, поддержка которой продлится до 2026 года. Согласно объявлению Oracle, JDK 25 будет поддерживаться как минимум восемь лет. Загрузки доступны здесь.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *