Oracle анонсировала Java 15

Логотип компании
18.09.2020Автор
В релиз добавлены новые функции для повышения безопасности и производительности разработчиков, включая алгоритм цифровой подписи на основе кривой Эдвардса и скрытые классы.

Релиз предлагает новые функции, такие как алгоритм цифровой подписи на основе кривой Эдвардса (Edwards-Curve Digital Signature Algorithm, JEP 339) и скрытые классы (Hidden Classes, JEP 371), а также включает в себя финальные версии функций, которые ранее были ознакомительными: текстовые блоки (Text Blocks, JEP 378) и сборщик мусора ZGC (JEP 377). В качестве ознакомительной возможности в Java 15 впервые добавлены запечатанные классы (Sealed Classes, JEP 360). Также, чтобы получить обратную связь от сообщества, в обновление повторно включены сопоставление с образцом для оператора instanceof (Pattern Matching, JEP 375) и записи (Records, JEP 384). 

Среди новых функций появились:

  • JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA), которая позволяет повысить безопасность и производительность за счет внедрения криптографических подписей с использованием алгоритма EdDSA (описание см. в RFC 8032).

  • JEP 371: Hidden Classes, которая помогает увеличить производительность – улучшает взаимодействие Java с фреймворками, которые генерируют классы при выполнении и используют их косвенно, через механизм рефлексии.

Ранее ознакомительная в JDK 13 и JDK 14 функция Text Blocks (JEP 378) теперь представлена в качестве финальной. Она помогает увеличить производительность разработки благодаря добавлению строковых литералов и автоматическому форматированию строк предсказуемым образом. То же самое произошло и с ZGC (JEP 377) – масштабируемый сборщик мусора с низкими показателями задержки был впервые представлен в JDK 11.

Также создатели предоставили возможность ознакомиться с функциями:

  • JEP 360: Sealed Classes, которая призвана повысить производительность разработчиков за счет добавления в язык Java запечатанных классов и интерфейсов. Запечатанные классы и интерфейсы предусматривают ограничения на то, какие другие классы и интерфейсы могут расширять или реализовать их.

  • JEP 375: Pattern Matching for instanceof, которая помогает улучшить производительность за счет устранения потребности в шаблонном коде и позволяет получить более компактный и типобезопасный код.

  • JEP 384: Records, которая помогает улучшить производительность за счет более компактного синтаксиса для объявления классов, содержащих поверхностные неизменяемые данные.

Foreign-Memory Access API (JEP 383) появилась в релизе из инкубатора и определяет API, с помощью которого программы Java могут безопасно и эффективно получать доступ к областям внешней памяти вне динамически распределяемой heap-памяти Java. С модернизацией существующего кода поможет «Переработка устаревших API DatagramSocket и MulticastSocket» (JEP 373), которая дает возможность улучшить удобство сопровождения и стабильность JDK за счет замены существующих API java.net.DatagramSocket и java.net.MulticastSocket более простыми и современными версиями.

Однако, как и в случае предыдущих релизов, в JDK 15 не поддерживаются устаревшие функции (JEP 374: Biased Locking, JEP 385: RMI activation). Также удалению подверглись исключенные функции (JEP 372: Nashorn JavaScript Engine) и порты (JEP 381: Solaris and Sparc).

10-я версия JDK, с которой начался переход на полугодовой цикл обновления, стал важной вехой в двадцатипятилетней истории Java. С 2018 года регулярный график позволяет гораздо быстрее добавлять обновления в экосистему Java.

Начиная с нее Oracle выпускает новые релизы каждые полгода, и Java 15 не стала исключением. Таким образом разработчики могут быстрее получать доступ к новым возможностям, что гарантирует надежность и стабильность. Сегодня в мире развернуто и активно используется  51 млрд виртуальных машин Java (JVM).

Похожие статьи