Выпущен 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 будет поддерживаться как минимум восемь лет. Загрузки доступны здесь.


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