6.2 C
Москва
Понедельник, 10 марта, 2025

Вышла Java 24: AOT-загрузка, улучшенные виртуальные потоки и отказ от Security Manager — Tproger

Java 24 вышла с AOT-загрузкой, улучшенными виртуальными потоками, Stream Gatherers и удалением Security Manager. Следующий релиз — Java 25 LTS

Oracle выпустила Java 24, добавив сразу 24 новых JEP — это крупнейший апдейт с 2018 года.

Среди ключевых нововведений: ускорение старта приложений, расширенные возможности многопоточности и отказ от устаревших механизмов безопасности.

AOT-загрузка классов: ускоренный запуск

JEP 483 внедряет Ahead-of-Time Class Loading and Linking, снижая накладные расходы на загрузку классов при старте JVM. Это улучшает механизм Application Class Data Sharing, представленный в JDK 11, и ускоряет запуск Java-приложений.

Stream Gatherers: кастомные операции в Stream API

JEP 485 расширяет Stream API, добавляя интерфейс Gatherer.

Теперь разработчики могут определять собственные промежуточные операции в потоках данных, что делает обработку коллекций более гибкой.

Удаление Security Manager: отказ от устаревшей защиты

С Java 24 окончательно удален Security Manager (JEP 486), который изначально предназначался для защиты при запуске недоверенного кода, но давно вышел из обихода.

Читать также:
Windows 7 использовали для разгона Intel Core i9 до рекордных 9.1 ГГц — Tproger

Он был депрекейтнут еще в Java 17, а теперь удален окончательно.

Виртуальные потоки теперь не блокируют платформенные

JEP 491 устраняет одно из главных ограничений виртуальных потоков из JDK 21.

Linux Foundation запустила инициативу по поддержке Chromiumtproger.ru

Ранее synchronized-блоки мешали потокам освобождать платформенные нити, снижая производительность. Теперь эта проблема решена, что делает виртуальные потоки еще эффективнее.

Предупреждения при использовании sun.misc.Unsafe

JEP 498 вводит runtime-предупреждения при вызове методов доступа к памяти из sun.misc.Unsafe.

Разработчикам рекомендуется переходить на VarHandle API и Foreign Function & Memory API.

Java 24 больше не поддерживает 32-битные системы Linux

В рамках JEP 501 удалена поддержка 32-битных x86-систем в Linux. Ранее аналогичный шаг был сделан в Windows (JDK 21).

В целом, это логичное решение, так как почти все современные системы перешли на 64-битные архитектуры.

Что дальше?

Следующий релиз Java 25 выйдет осенью и станет LTS-версией.

НОВОЕ НА САЙТЕ