Vydanie Java SE 19

Po šiestich mesiacoch vývoja vydal Oracle Java SE 19 (Java Platform, Standard Edition 19), ktorý využíva open-source projekt OpenJDK ako referenčnú implementáciu. S výnimkou odstránenia niektorých zastaraných funkcií si Java SE 19 zachováva spätnú kompatibilitu s predchádzajúcimi vydaniami platformy Java – väčšina predtým napísaných projektov Java bude pri spustení v novej verzii fungovať bez zmien. Zostavy Java SE 19 (JDK, JRE a Server JRE) pripravené na inštaláciu sú pripravené pre Linux (x86_64, AArch64), Windows (x86_64) a macOS (x86_64, AArch64). Referenčná implementácia Java 19, vyvinutá projektom OpenJDK, je plne open source pod licenciou GPLv2, s výnimkami GNU ClassPath, ktoré umožňujú dynamické prepojenie s komerčnými produktmi.

Java SE 19 je klasifikovaná ako bežné vydanie podpory a bude naďalej dostávať aktualizácie až do ďalšieho vydania. Pobočka Long Term Support (LTS) by mala byť Java SE 17, ktorá bude naďalej dostávať aktualizácie až do roku 2029. Pripomeňme, že počnúc vydaním Java 10 projekt prešiel na nový vývojový proces, čo znamená kratší cyklus tvorby nových vydaní. Nová funkcionalita sa teraz vyvíja v jednej neustále aktualizovanej hlavnej vetve, ktorá zahŕňa hotové zmeny a z ktorej sa vetvy rozvetvujú každých šesť mesiacov, aby sa stabilizovali nové vydania.

Nové funkcie v Java 19 zahŕňajú:

  • Bola navrhnutá predbežná podpora vzorov záznamov, ktorá rozširuje funkciu porovnávania vzorov zavedenú v jazyku Java 16 o nástroje na analýzu hodnôt tried typu záznamu. Napríklad: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Zostavy Linuxu poskytujú podporu pre architektúru RISC-V.
  • Pridaná predbežná podpora pre FFM (Foreign Function & Memory) API, ktorá umožňuje organizovať interakciu programov Java s externým kódom a údajmi volaním funkcií z externých knižníc a prístupom k pamäti mimo JVM.
  • Pridaná podpora pre virtuálne vlákna, čo sú ľahké vlákna, ktoré výrazne zjednodušujú písanie a údržbu vysokovýkonných viacvláknových aplikácií.
  • Bola navrhnutá štvrtá ukážka rozhrania Vector API, ktorá poskytuje funkcie pre vektorové výpočty, ktoré sa vykonávajú pomocou vektorových inštrukcií na procesoroch x86_64 a AArch64 a umožňujú súčasné použitie operácií na viaceré hodnoty (SIMD). Na rozdiel od možností, ktoré poskytuje kompilátor HotSpot JIT pre automatickú vektorizáciu skalárnych operácií, nové API umožňuje explicitne riadiť vektorizáciu pre paralelné spracovanie údajov.
  • Bola pridaná tretia experimentálna implementácia zhody vzorov vo výrazoch „prepínač“, ktorá umožňuje použitie flexibilných šablón v štítkoch „prípadov“ namiesto presných hodnôt, pokrývajúcich sériu hodnôt naraz, pre ktoré bolo predtým potrebné použiť ťažkopádne reťazce výrazov „keby...inak“. Objekt 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(); };
  • Pridané experimentálne API pre štruktúrovaný paralelizmus, ktoré zjednodušuje vývoj viacvláknových aplikácií tým, že viacero úloh bežiacich v rôznych vláknach spracováva ako jeden blok.

Zdroj: opennet.ru

Pridať komentár