Java SE 19 väljalase

Pärast kuuekuulist arendustööd on Oracle välja andnud Java SE 19 (Java Platform, Standard Edition 19) platvormi, mis kasutab OpenJDK avatud lähtekoodiga projekti referentsrakendusena. Välja arvatud mõnede aegunud funktsioonide eemaldamine, säilitab Java SE 19 tagasiühilduvuse Java platvormi eelmiste väljalasetega – enamik varem kirjutatud Java-projekte töötab uue versiooniga käivitamisel endiselt ilma muudatusteta. Java SE 19 (JDK, JRE ja Server JRE) installitavad järgud on ette valmistatud Linuxi (x86_64, AArch64), Windowsi (x86_64) ja macOS-i (x86_64, AArch64) jaoks. OpenJDK projekti poolt välja töötatud Java 19 viiterakendus on täielikult avatud lähtekoodiga GPLv2 litsentsi alusel koos GNU ClassPathi eranditega, et võimaldada dünaamilist linkimist kommertstoodetega.

Java SE 19 liigitatakse tavapäraseks tugiväljalaseks, mille värskendused avaldatakse enne järgmist väljalaset. Pikaajalise toe (LTS) haru peaks olema Java SE 17, mis saab värskendusi kuni 2029. aastani. Tuletame meelde, et alates Java 10 väljalaskmisest lülitus projekt üle uuele arendusprotsessile, mis tähendab lühemat tsüklit uute väljaannete moodustamiseks. Uut funktsionaalsust arendatakse nüüd ühes pidevalt uuendatavas põhiharus, mis sisaldab juba tehtud muudatusi ja millest hargnevad harud iga kuue kuu tagant uute väljaannete stabiliseerimiseks.

Java 19 uute funktsioonide hulka kuuluvad:

  • Kirjemustritele on pakutud esialgne tugi, mis laiendab Java 16 mustrite sobitamise võimalust kirje tüübiklasside väärtuste sõelumiseks. Näiteks: rekord Punkt(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linuxi järgud toetavad RISC-V arhitektuuri.
  • Lisatud esialgne tugi FFM (Foreign Function & Memory) API-le, mis võimaldab teil korraldada Java-programmide interaktsiooni välise koodi ja andmetega, kutsudes funktsioone välistest teegidest ja pääsedes juurde mälule väljaspool JVM-i.
  • Lisatud tugi virtuaalsetele lõimedele, mis on kerged lõimed, mis lihtsustavad oluliselt suure jõudlusega mitme lõimega rakenduste kirjutamist ja hooldamist.
  • Pakutakse välja Vector API neljas esialgne juurutus, mis pakub funktsioone vektoriarvutuste jaoks, mida tehakse protsessorite x86_64 ja AArch64 vektorkäskude abil ning mis võimaldab teil korraga rakendada toiminguid mitmele väärtusele korraga (SIMD). Erinevalt HotSpot JIT kompilaatoris pakutavatest võimalustest skalaarsete operatsioonide automaatseks vektoriseerimiseks võimaldab uus API paralleelse andmetöötluse vektoriseerimist selgesõnaliselt juhtida.
  • Lisatud on lülitiavaldistes mustrite sobitamise kolmas eksperimentaalne teostus, mis võimaldab kasutada paindlikke malle juhtumisiltide puhul, mis katavad korraga mitmeid väärtusi, mille puhul on varem kasutatud tülikaid if...muidu lausete ahelaid. Objekt o = 123L; String vormindatud = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("pikk %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); vaikimisi -> o.toString(); };
  • Lisatud on eksperimentaalne Structured Parallelism API, mis muudab mitme lõimega rakenduste arendamise lihtsamaks, käsitledes mitut eri lõimedel töötavat ülesannet ühe üksusena.

Allikas: opennet.ru

Lisa kommentaar