Java SE 19 saki

Bayan watanni shida na ci gaba, Oracle ya fito da dandalin Java SE 19 (Java Platform, Standard Edition 19), wanda ke amfani da bude tushen aikin OpenJDK azaman aiwatar da tunani. Ban da cire wasu fasalolin da aka yanke, Java SE 19 yana kula da dacewa da baya tare da abubuwan da suka gabata na dandalin Java - yawancin ayyukan Java da aka rubuta a baya za su yi aiki ba tare da canje-canje ba yayin da suke gudana ƙarƙashin sabon sigar. Java SE 19 ginawa (JDK, JRE, da Server JRE) an shirya don Linux (x86_64, AArch64), Windows (x86_64), da macOS (x86_64, AArch64). An haɓaka ta aikin OpenJDK, aiwatar da tunani na Java 19 yana buɗewa gabaɗaya ƙarƙashin lasisin GPLv2 tare da keɓancewar GNU ClassPath don ba da damar haɗa kai ga samfuran kasuwanci.

Java SE 19 an kasafta shi azaman sakin tallafi na yau da kullun, tare da sabbin abubuwan da za'a fitar kafin sakin na gaba. Reshen tallafi na dogon lokaci (LTS) yakamata ya zama Java SE 17, wanda zai karɓi sabuntawa har zuwa 2029. Ka tuna cewa farawa tare da sakin Java 10, aikin ya canza zuwa wani sabon tsari na ci gaba, wanda ke nuna gajeriyar zagayowar don samuwar sabbin abubuwa. Yanzu ana haɓaka sabbin ayyuka a cikin reshe mai girma da aka sabunta akai-akai, wanda ke haɗa sauye-sauye da aka riga aka kammala kuma daga cikinsu ake reshen rassan kowane wata shida don daidaita sabbin abubuwan da aka fitar.

Sabbin abubuwa a cikin Java 19 sun haɗa da:

  • Предложена предварительная поддержка шаблонов записей (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: budenet.ru

Add a comment