Java 17 уже начала формироваться, хотя и не раньше сентября, с четырьмя новыми функциями, запланированными для обновления до стандартной Java. В последнем изменении от 27 апреля будут удалены экспериментальные опережающие (AOT) и JIT-компиляторы на основе Java.

Java Development Kit (JDK) 17 будет выпуском с долгосрочной поддержкой (LTS), с расширенной поддержкой Oracle, ожидаемой в течение нескольких лет.

Функции, представленные как часть OpenJDK JDK 17, включают:

  • Удаление экспериментального компилятора AOT и JIT, который мало использовался, но требует значительных усилий по обслуживанию. План призывает поддерживать интерфейс компилятора JVM на уровне Java, чтобы разработчики могли продолжать использовать созданные извне версии компилятора для JIT-компиляции. Компиляция AOT (инструмент jaotc) была включена в JDK 9 как экспериментальная функция. Инструмент использует Компилятор Graal, который сам написан на Java, для компиляции AOT. Эти экспериментальные функции не были включены в JDK 16 сборки опубликованы Oracle и никто не жаловался. Согласно предписанному плану, три модуля JDK будут удалены: jdk.aot (инструмент jaotc); internal.vm.compiler, компилятор Graal; и jdk.internal.vm.compiler.management, MBean Graal. Также будет удален код HotSpot, связанный с компиляцией AOT.
  • Перенос JDK на MacOS / AArch64 в ответ на План Apple по переводу своих компьютеров Macintosh с x64 на AArch64. Порт AArch64 для Java уже существует для Linux, и в настоящее время ведутся работы для Windows. Разработчики Java рассчитывают повторно использовать существующий код AArch64 из этих портов, применяя условную компиляцию, как это обычно бывает в портах JDK, чтобы учесть различия в низкоуровневых соглашениях, таких как двоичный интерфейс приложения и набор зарезервированных регистров процессора. Изменения для MacOS / AArch64 могут привести к поломке существующих портов Linux / AArch64, Windows / AArch64 и MacOS / x64, но риск будет снижен за счет тестирования перед интеграцией.
  • Прекращение поддержки API апплета для удаления. Этот API по существу не имеет значения, поскольку все поставщики веб-браузеров либо удалили поддержку подключаемых модулей браузера Java, либо объявили о планах сделать это. API апплета ранее был объявлен устаревшим, но не подлежал удалению в Java 9 в сентябре 2017 года.
  • Новый конвейер рендеринга для MacOS, используя Apple Metal API в качестве альтернативы существующему конвейеру, который использует устаревший OpenGL API. Это предложение предназначено для обеспечения полнофункционального конвейера рендеринга для Java 2D API, который использует структуру MacOS Metal, и быть готовым на случай, если Apple удалит OpenGL API из будущей версии MacOS. Предполагается, что конвейер будет иметь функциональный паритет с существующим конвейером OpenGL, с производительностью, такой же или более высокой в ​​отдельных приложениях и тестах. Будет создана чистая архитектура, которая вписывается в текущую 2D-модель Java. Этот конвейер будет сосуществовать с конвейером OpenGL до тех пор, пока он не станет устаревшим. Целью предложения не является добавление каких-либо новых API-интерфейсов Java или JDK.
  • Улучшенные генераторы псевдослучайных чисел которые предоставят новые типы интерфейсов и реализации для генераторов псевдослучайных чисел (PRNG), включая изменяемые PRNG и дополнительный класс алгоритмов разделяемого PRNG (LXM). Новый интерфейс, RandomGenerator, предоставит единый API для всех существующих и новых ГПСЧ. Будет предоставлено четыре специализированных интерфейса RandomGenerator. Мотивация плана – сосредоточение внимания на нескольких областях для улучшения в области генерации псевдослучайных чисел в Java. Эти усилия не требуют реализации множества других алгоритмов ГПСЧ. Но были добавлены три общих алгоритма, которые уже широко используются в других средах языков программирования. Цели плана включают:
    • Упрощение взаимозаменяемого использования различных алгоритмов ГПСЧ в приложениях.
    • Улучшена поддержка потокового программирования, предоставляющего потоки объектов PRNG.
    • Устранение дублирования кода в существующих классах ГПСЧ.
    • Сохранение существующего поведения класса java.util.Random.

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

14 сентября намечено, что JDK 17 станет общедоступным. Выпуску продукции будут предшествовать этапы свертывания в июне и июле, а выпуск кандидатов – в августе. Сборки JDK 17 с открытым исходным кодом для раннего доступа можно найти по адресу jdk.java.net.

Релизы LTS, такие как JDK 17, появляются каждые три года. Последний релиз LTS, JDK 11, был опубликован в сентябре 2018 года. Новые версии Java появляются каждые шесть месяцев. Текущая версия стандартной версии Java: JDK 15.

Авторские права © 2021 IDG Communications, Inc.


#JDK #новые #функции #Java

Source link