Vydání Java SE 19

Po šesti měsících vývoje vydala společnost Oracle platformu Java SE 19 (Java Platform, Standard Edition 19), která jako referenční implementaci využívá open source projekt OpenJDK. S výjimkou odstranění některých zastaralých funkcí si Java SE 19 zachovává zpětnou kompatibilitu s předchozími verzemi platformy Java – většina dříve napsaných projektů Java bude při spuštění v nové verzi stále fungovat bez úprav. Sestavení Java SE 19 (JDK, JRE a Server JRE) připravená k instalaci jsou připravena pro Linux (x86_64, AArch64), Windows (x86_64) a macOS (x86_64, AArch64). Referenční implementace Java 19, vyvinutá projektem OpenJDK, je plně open source pod licencí GPLv2 s výjimkami GNU ClassPath, které umožňují dynamické propojení s komerčními produkty.

Java SE 19 je kategorizována jako běžná podpůrná verze, přičemž aktualizace budou vydány před dalším vydáním. Odvětví dlouhodobé podpory (LTS) by měla být Java SE 17, která bude dostávat aktualizace až do roku 2029. Připomeňme, že počínaje vydáním Java 10 přešel projekt na nový vývojový proces, což znamená kratší cyklus tvorby nových verzí. Nové funkce jsou nyní vyvíjeny v jedné neustále aktualizované hlavní větvi, která zahrnuje již dokončené změny a ze které se větve každých šest měsíců rozvětvují za účelem stabilizace nových verzí.

Mezi nové funkce v Javě 19 patří:

  • Byla navržena předběžná podpora vzorů záznamů, která rozšiřuje schopnost porovnávání vzorů Java 16 o analýzu hodnot tříd typu záznam. Například: record Bod(int x, int y) {} void printSum(Object o) { if (o instanceof Bod(int x, int y)) { System.out.println(x+y); } }
  • Sestavení Linuxu poskytují podporu pro architekturu RISC-V.
  • Přidána předběžná podpora pro FFM (Foreign Function & Memory) API, která umožňuje organizovat interakci Java programů s externím kódem a daty prostřednictvím volání funkcí z externích knihoven a přístupu k paměti mimo JVM.
  • Přidána podpora pro virtuální vlákna, což jsou odlehčená vlákna, která výrazně zjednodušují zápis a údržbu vysoce výkonných vícevláknových aplikací.
  • Je navržena čtvrtá předběžná implementace Vector API, která poskytuje funkce pro vektorové výpočty, které se provádějí pomocí vektorových instrukcí procesorů x86_64 a AArch64 a umožňují současně aplikovat operace na několik hodnot najednou (SIMD). Na rozdíl od možností, které poskytuje kompilátor HotSpot JIT pro autovektorizaci skalárních operací, nové API umožňuje explicitně řídit vektorizaci pro paralelní zpracování dat.
  • Byla přidána třetí experimentální implementace porovnávání vzorů ve výrazech přepínačů, která umožňuje používat flexibilní šablony v popiscích případů, které pokrývají řadu hodnot najednou, pro které se dříve používaly těžkopádné řetězce příkazů if...else. 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(); };
  • Bylo přidáno experimentální rozhraní Structured Parallelism API, které usnadňuje vývoj vícevláknových aplikací tím, že zpracovává více úloh běžících na různých vláknech jako jeden celek.

Zdroj: opennet.ru

Přidat komentář