JDK 23: новые возможности Java 23

Java Development Kit (JDK) 23, следующая запланированная версия стандартного Java, уже запущена, и в релизе запланировано пять функций. Последнее дополнение делает генерационный режим сборщика мусора Z режимом по умолчанию.

Выходящий 17 сентября JDK 23 также будет включать векторный API, который будет инкубироваться уже в восьмой раз, вторую предварительную версию сборщиков потоков, вторую предварительную версию API классов-файлов и предварительную версию примитивных типов в паттернах, instanceof и switch. Сборки раннего доступа для JDK 23 доступны по адресу jdk.java.net.

На этой неделе был добавлен план по переключению режима по умолчанию сборщика мусора Z (ZGC) на режим генерации. Поколенческий ZGC призван повысить производительность Java-приложений за счет более частого сбора молодых объектов, которые, как правило, умирают молодыми. Негенеративный режим будет устаревшим, с намерением удалить его в будущем выпуске. Цели этой функции - сигнализировать о том, что будущие разработки будут сосредоточены на поколенческом ZGC, и снизить затраты на поддержку двух разных режимов. Поддержание негенеративного ZGC замедляет разработку новых функций. ZGC была добавлена в Java в JDK 15 в сентябре 2020 года.

Векторный API, который был разработан в предыдущих версиях Java, начиная с JDK 16 и заканчивая выпущенной в прошлом месяце JDK 22, представляет API для выражения векторных вычислений, которые надежно компилируются во время выполнения в оптимальные векторные инструкции на поддерживаемых архитектурах CPU. Цели предложения включают предоставление ясного и четкого API, обеспечение надежной компиляции и производительности во время выполнения на архитектурах x64 и AArch64, обеспечение плавной деградации, платформозависимость и согласование с проектом Valhalla, который предназначен для дополнения объектной модели Java объектами значений.

Сборщики потоков, ранее представленные в JDK 22, улучшат API потоков для поддержки пользовательских промежуточных операций. Сборщики потоков позволят потоковым конвейерам преобразовывать данные таким образом, который невозможно реализовать с помощью существующих встроенных промежуточных операций. Среди целей - сделать потоковые конвейеры более гибкими и выразительными и позволить пользовательским промежуточным операциям манипулировать потоками бесконечного размера.

API для работы с файлами классов призван обеспечить API для обработки файлов классов, который соответствует формату файлов классов, определенному спецификацией виртуальной машины Java. Он также позволит компонентам JDK перейти на стандартный API и в конечном итоге удалить внутреннюю копию библиотеки ASM стороннего производителя. API для файлов классов добавит усовершенствования, включая оптимизацию класса CodeBuilder, который имеет фабричные методы для инструкций байткода, включая низкоуровневые фабрики, фабрики среднего уровня и высокоуровневые сборщики для базовых блоков.

В JDK 23 разработчики Java удалили методы среднего уровня, которые дублировали методы низкого уровня или редко использовались, а оставшиеся методы среднего уровня переименовали, чтобы улучшить удобство использования. Они также доработали модель классов ClassSignature, которая была улучшена для более точного моделирования общих сигнатур суперклассов и суперинтерфейсов. Согласно предложению OpenJDK, лежащему в основе этой функции, платформа Java должна определить и реализовать стандартный API класс-файлов, который будет развиваться вместе с форматом класс-файлов, который может меняться каждые шесть месяцев.

Кроме того, в JDK 23 планируется включить еще одну функцию предварительного просмотра - примитивные типы в шаблонах, instanceof и switch. Эта функция улучшит сопоставление шаблонов, позволив использовать шаблоны примитивных типов во всех контекстах шаблонов, а также расширит функции instanceof и switch для работы со всеми примитивными типами. Цели включают предоставление простых в использовании конструкций, которые устраняют риск потери информации из-за небезопасного приведения, выравнивание типов шаблонов с instanceof, выравнивание instanceof с безопасным приведением, а также обеспечение единообразного исследования данных путем разрешения шаблонов типов для всех типов, будь то примитивные или ссылочные типы. Еще одна цель - позволить сопоставлению шаблонов использовать все шаблоны примитивных типов во вложенных контекстах и контекстах верхнего уровня.

Ряд других функций, представленных в JDK 22, могут попасть в JDK 23. К ним относятся утверждения перед super(...), которые дадут разработчикам большую свободу в выражении поведения конструктора; шаблоны строк, которые упростят выражение строк, включающих значения, вычисляемые во время выполнения; скопированные значения, которые позволят обмениваться неизменяемыми данными внутри и между потоками; неявно объявленные классы и основные методы экземпляра, которые облегчат начинающим программистам написание программ без необходимости понимать особенности языка, предназначенные для больших программ. Также возможны создание производных записей и предложение о "горячей" куче кода, которые сократят время выполнения приложений.

Разработчик Java компания Oracle также раскрыла планы по развитию Java в 2024 году. Oracle рассказала об усовершенствованиях, связанных с проектами OpenJDK, начиная с Amber, предназначенного для разработки небольших функций, ориентированных на производительность, и Babylon, предназначенного для расширения Java на иностранные модели программирования, такие как GPU, и Valhalla, предназначенного для дополнения объектной модели Java объектами значений, чтобы устранить давние узкие места в производительности.

JDK 23: новые возможности Java 23
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
29 апреля 2024 г.
456
Теги: Java , API , JDK

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще

Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!

Только свежие новости программирования и технологий каждый день.