Java SE 19 מעלדונג

נאָך זעקס חדשים פון אַנטוויקלונג, Oracle באפרייט Java SE 19 (Java Platform, Standard Edition 19), וואָס ניצט די אָפֿן-מקור OpenJDK פּרויעקט ווי אַ רעפֿערענץ ימפּלאַמענטיישאַן. מיט די ויסנעם פון די באַזייַטיקונג פון עטלעכע פאַרעלטערט פֿעיִקייטן, Java SE 19 מיינטיינז צוריק קאַמפּאַטאַבילאַטי מיט פרייַערדיק ריליסיז פון די Java פּלאַטפאָרמע - רובֿ פריער געשריבן Java פּראַדזשעקס וועט אַרבעטן אָן ענדערונגען ווען זיי לויפן אונטער די נייַע ווערסיע. גרייט-צו-ינסטאַלירן בילדער פון Java SE 19 (JDK, JRE און Server JRE) זענען צוגעגרייט פֿאַר לינוקס (x86_64, AArch64), Windows (x86_64) און macOS (x86_64, AArch64). דעוועלאָפּעד דורך די OpenJDK פּרויעקט, די Java 19 רעפֿערענץ ימפּלאַמענטיישאַן איז גאָר אָפֿן מקור אונטער די GPLv2 דערלויבעניש, מיט GNU ClassPath אויסנעמען אַלאַוינג דינאַמיש פֿאַרבינדונג מיט געשעפט פּראָדוקטן.

Java SE 19 איז קלאַסאַפייד ווי אַ רעגולער שטיצן מעלדונג און וועט פאָרזעצן צו באַקומען דערהייַנטיקונגען ביז דער ווייַטער מעלדונג. די לאנג טערמין שטיצן (LTS) צווייַג זאָל זיין Java SE 17, וואָס וועט פאָרזעצן צו באַקומען דערהייַנטיקונגען ביז 2029. לאָזן אונדז דערמאָנען איר אַז סטאַרטינג מיט די מעלדונג פון Java 10, די פּרויעקט איז סוויטשט צו אַ נייַע אַנטוויקלונג פּראָצעס, וואָס ימפּלייז אַ קירצער ציקל פֿאַר די פאָרמירונג פון נייַע ריליסיז. ניו פאַנגקשאַנאַליטי איז איצט דעוועלאָפּעד אין איין קעסיידער דערהייַנטיקט בעל צווייַג, וואָס כולל פאַרטיק ענדערונגען און פון וואָס צווייגן זענען בראַנטשט יעדער זעקס חדשים צו סטייבאַלייז נייַע ריליסיז.

נייַע פֿעיִקייטן אין Java 19 אַרייַננעמען:

  • Предложена предварительная поддержка шаблонов записей (record pattern), расширяющая появившуюся в Java 16 возможность сопоставления с образцом средствами для разбора значений классов типа record. Например: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • В сборках для Linux обеспечена поддержка архитектуры RISC-V.
  • Добавлена предварительная поддержка API FFM (Foreign Function & Memory), позволяющего организовать взаимодействие Java-программ с внешними кодом и данными через вызов функций из внешних библиотек и доступ к памяти вне JVM.
  • Добавлена поддержка виртуальных потоков, представляющих собой легковесные потоки, значительно упрощающие написание и сопровождение высокопроизводительных многопоточных приложений.
  • Предложена четвёртая предварительная реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • Добавлена третья экспериментальная реализация сопоставления по шаблону в выражениях «switch», позволяющая в метках «case» использовать не точные значения, а гибкие шаблоны, охватывающие сразу серию значений, для которых ранее приходилось использовать громоздкие цепочки выражений «if…else». Object o = 123L; String formatted = switch (o) { case Integer i -> String.format(«int %d», i); case Long l -> String.format(«long %d», l); case Double d -> String.format(«double %f», d); case String s -> String.format(«String %s», s); default -> o.toString(); };
  • Добавлен экспериментальный API для cтруктурированного параллелизма, упрощающий разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.

מקור: opennet.ru

לייגן אַ באַמערקונג