Java SE 19 berdan

Piştî şeş mehên pêşveçûnê, Oracle platforma Java SE 19 (Java Platform, Edition Standard 19) derxist, ku projeya çavkaniya vekirî OpenJDK wekî pêkanîna referansê bikar tîne. Ji xeynî rakirina hin taybetmendiyên paşverû, Java SE 19 bi serbestberdanên berê yên platforma Java-yê re lihevhatina paşverû diparêze - piraniya projeyên Java-yê yên ku berê hatine nivîsandin dema ku di bin guhertoya nû de têne xebitandin dê hîn jî bêyî guheztinê bixebitin. Avakirinên Java SE 19 yên sazkirî (JDK, JRE, û Server JRE) ji bo Linux (x86_64, AArch64), Windows (x86_64), û macOS (x86_64, AArch64) têne amadekirin. Ji hêla projeya OpenJDK ve hatî pêşve xistin, pêkanîna referansa Java 19 bi tevahî di bin lîsansa GPLv2 de bi îstîsnayên GNU ClassPath vekirî ye da ku rê bide girêdana dînamîkî bi hilberên bazirganî re.

Java SE 19 wekî serbestberdana piştgirîya birêkûpêk tête kategorîze kirin, digel ku nûvekirin berî berdana din were berdan. Pêdivî ye ku şaxa piştevaniya demdirêj (LTS) Java SE 17 be, ku dê heya 2029-an nûvekirinan bistîne. Bînin bîra xwe ku bi berdana Java 10-ê dest pê kir, proje veguherî pêvajoyek nû ya pêşkeftinê, ku tê wateya çerxek kurttir ji bo avakirina berdanên nû. Fonksiyonên nû naha di yek şaxek masterê ya ku bi domdarî nûvekirî de tê pêşve xistin, ya ku guheztinên jixwe qedandî vedihewîne û ji kîjan şeş mehan carekê şax têne şax kirin da ku serbestberdanên nû aram bike.

Taybetmendiyên nû di Java 19 de ev in:

  • Предложена предварительная поддержка шаблонов записей (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труктурированного параллелизма, упрощающий разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.

Source: opennet.ru

Add a comment