Содержание
- 1 AOT-загрузка классов: ускоренный запуск
- 2 Stream Gatherers: кастомные операции в Stream API
- 3 Удаление Security Manager: отказ от устаревшей защиты
- 4 Виртуальные потоки теперь не блокируют платформенные
- 5 Предупреждения при использовании sun.misc.Unsafe
- 6 Java 24 больше не поддерживает 32-битные системы Linux
- 7 Что дальше?
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), который изначально предназначался для защиты при запуске недоверенного кода, но давно вышел из обихода.
Он был депрекейтнут еще в 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-версией.