Java SE 19 väljalase

Pärast kuuekuulist arendustöö on ettevõte Oracle välja andnud Java SE 19 (Java Platform, Standard Edition 19), mille referentsrakenduseks on avatud projekt OpenJDK. Välja arvatud mõned aegunud funktsioonide eemaldamised, on Java SE 19 taganud ühilduvuse varasemate Java versioonidega — enamik varem kirjutatud Java projekte töötavad uue versiooniga ilma muudatusteta. Paigaldatavad Java SE 19 (JDK, JRE ja Server JRE) versioonid on ette valmistatud Linuxile (x86_64, AArch64), Windowsile (x86_64) ja macOS-ile (x86_64, AArch64). OpenJDK projekti raames välja töötatud Java 19 referentsrakendus on täielikult avatud GPLv2 litsentsi all koos GNU ClassPathi eranditega, mis lubavad dünaamilist sidumist kommertstootedega.

Java SE 19 kuulub tavalise toe tooteväljaannete rühma, mille uuendused avaldatakse kuni järgmise väljaandeni. Pikaajalise toe (LTS) versioonina tuleks kasutada Java SE 17, mille uuendused avaldatakse kuni 2029. aastani. Tuletame meelde, et alates Java 10 väljaandest on projekt üle läinud uuele arendusprotsessile, mis eeldab lühemat uute väljaannete tsüklit. Uued funktsioonid arenevad nüüd pidevalt uuendatavas master-haru, kuhu lisatakse juba valmis muudatused ja millest lõigatakse iga kuue kuu tagant välja uusi versioone stabiliseerivad harud.

Java 19 uuendustest võib esile tõsta:

  • Pakkuda eeltoetust kirje mustritele (record pattern), mis laiendavad Java 16-s sisse viidud mustriga vastavuse võimalust kirje tüüpide väärtuste analüüsimiseks. Näiteks: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linuxi kogumites on tagatud RISC-V arhitektuuri tugi.
  • Lisatud on esmane tugi FFM API-le (Foreign Function & Memory), mis võimaldab Java programmide vahel suhelda välise koodi ja andmetega funktsioonide väljakutse kaudu väliste raamatukogude ja mälu juurdepääsu kaudu väljaspool JVM-i.
  • Lisatud tugi virtuaalsete niitide jaoks, mis on kergekaalulised niidid, mis lihtsustavad kõrge jõudlusega mitme niidi rakenduste kirjutamist ja hooldamist.
  • Pakkuda neljandat eeltoodud API Vector realiseerimist, mis pakub funktsioone vektorkalkulatsioonide jaoks, mida teostatakse x86_64 ja AArch64 protsessorite vektorinstruktsioonide abil ning mis võimaldavad korraga rakendada operatsioone mitmele väärtusele (SIMD). Erinevalt HotSpot JIT kompilaatori automaatvektorimise võimalustest, võimaldab uus API selgesõnaliselt hallata vektorisatsiooni paralleelse andmetöötluse jaoks.
  • Lisatud on kolmas eksperimentaalne mustri vastavuse rakendus "switch" väljendites, mis võimaldab "case" siltides kasutada mitte täpseid väärtusi, vaid paindlikke mustreid, mis hõlmavad koheselt rida väärtusi, mille puhul varem oli vaja kasutada mahukaid "if...else" väljendeid. 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(); };
  • Lisatud eksperimentaalne API struktuurse paralleelsuse jaoks, mis lihtsustab multiteadlikke rakendusi mitme ülesande töötlemise kaudu, mis toimuvad erinevates niitides, kui ühe tervikliku plokina.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS-kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS-kaitsega, VPS VDS serverid | ProHoster