XS
SM
MD
LG
Державний університет інформаційно-комунікаційних технологій

(Державний університет телекомунікацій)


Адреса:
03110, Україна
м. Київ, вул. Солом'янська, 7
Контактна інформація:
Державний університет інформаційно-комунікаційних технологій

(Державний університет телекомунікацій)

Нові можливості 21 випуску Java: JPE рекомендовані для ознайомлення

16:38, 08-11-2023

Кафедра Комп’ютерних наук продовжує знайомити студентів та фахівців з мови програмування Java з новинками в цій області.

В минулій статті (https://duikt.edu.ua/ua/news-1-626-11613-novi-mozhlivosti-21-vipusku-java_kafedra-kompyuternih-nauk-ta-informaciynih-tehnologiy) ми розповіли вам про нові можливості нової 21 версії Java, офіційний реліз якої відбувся 19 вересня 2023 року. Окрім нових функцій, вже готових до використання, цей реліз містить ряд оновлень, включених з метою ознайомлення та тестування (так звані Preview and incubator JEPs). Їм ми приділимо увагу в даній публікації.

Отже, у 21 випуск для ознайомлення та тестування увійшли такі функції:

JEP 430: Шаблони рядків (String templates). Цей JEP спрощує написання програм на Java, полегшуючи створення рядків, які мають включати конкретні значення, обчислені під час виконання програми. Також він покращує "читабельність" виразів, в яких змішуються текстові фрагменти та інші вирази, незалежно від того, чи текст розміщується в одному вихідному рядку, чи займає кілька вихідних рядків. Цей механізм також покращує безпеку програм Java, які створюють рядки зі значень, наданих користувачем, і передають їх іншим системам.

JEP 442: зовнішні функції та API пам’яті (Foreign function and memory API ). Цей JEP представляє новий API, який допомагає програмам Java взаємодіяти з кодом і даними за межами середовища виконання Java. Завдяки ефективному виклику зовнішніх функцій (коду поза віртуальної машини JVM) і безпечному доступу до зовнішньої пам’яті (пам’яті, яка не керується JVM), цей API дозволяє програмам Java викликати "рідні" (native)  бібліотеки та обробляти "рідні" дані без Java Native Interface (JNI).

JEP 443: Безіменні шаблони та змінні (Unnamed patterns and variables ). Цей JEP розширює мову Java за допомогою безіменних шаблонів, які відповідають компоненту запису без вказівки назви чи типу компонента, а також безіменних змінних, які можна ініціалізувати, але не використовувати. Обидва позначаються символом підкреслення, _.

JEP 445: Безіменні класи та основні методи екземплярів (Unnamed classes and instance main methods). Цей JEP пропонує плавне введення до Java, щоб викладачі могли поступово ознайомлювати з концепціями програмування. Це робиться за рахунок скорочення "шаблонів" коду, щоб студенти могли писати свої перші програми без необхідності розуміти мовні особливості, які використовуються для великих програм. В одночас цей JEP не вводить окремий синтаксис для початківців Java чи окремий інструментарій.

Завдяки цьому нововведенню Java стає більш простою для вивчення. Порівняйте код класичної програми "Hello World", написаної у традиційному стилі, з спрощеним кодом відповідно до  JEP 445:

оригінальний код:

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, World!");

    }

}

 

Спрощений код (JEP 445):

void main() {

    System.out.println("Hello, World!");

}

За замовчуванням, дана функція вимкнена в Java 21.

JEP 446: Охоплені значення (Scoped values). Цей JEP надає модель програмування для обміну даними як усередині потоку, так і з дочірніми потоками, щоб спростити розуміння потоку даних. Модель гарантує, що дані, які сумісно використовуються викликаючим об'єктом, можуть бути отримані лише законними викликаючими об'єктами, а також розглядає спільні дані як незмінні, щоб дозволити спільний доступ до них багатьом потокам і оптимізувати час виконання.

JEP 448: Vector API (Vector API ). Цей новий API виражає векторні обчислення, які під час виконання надійно компілюються в оптимальні векторні інструкції на архітектурах CPU, які підтримують це, і таким чином досягаючи продуктивності, що перевищує еквівалентні скалярні обчислення. Він також додає ексклюзивну операцію "або" (XOR) до векторних масок і покращує продуктивність перемішування векторів, особливо коли вони використовуються для перевпорядкування елементів вектора або перетворення між векторами.

JEP 453: Структурований паралелізм (Structured concurrency). Цей JEP спрощує паралельне програмування, вводячи API для структурованого паралелізму, а також сприяє стилю паралельного програмування, який може усунути розповсюджені ризики, які  виникають під час відміни та завершення роботи, такі як утічки потоків (thread leaks) та затримки відміни (cancellation delays).

Версію Java 21 OpenJDK можна отримати за адресою https://jdk.java.net/21/. Реалізацію Oracle, Java SE 21, можна знайти за адресою https://www.oracle.com/java/technologies/downloads/.

Java SE 21 від Oracle — це версія, яка має довгострокову підтримку (long-term support, LTS). Oracle пропонує довгострокову підтримку Java 21 протягом  восьми років. Цей подовжений період підтримки дає організаціям гнучкість, щоб підтримувати робочі програми довше з мінімальним обслуговуванням і зрештою здійснювати міграцію на власних умовах.

Слід зауважити, що на основі відгуків клієнтів і використання в екосистемі Java Oracle також оголосила, що довгострокову підтримку Java 11 було продовжено  до січня 2032 року, забезпечуючи принаймні ще вісім років підтримки та оновлень від Oracle.

Статтю підготував проф. каф. комп'ютерних наук Олег Ільїн.

За матеріалами https://blogs.oracle.com/javamagazine.

Читайте також
Переглядів: 338