Izdanje Java SE 19

Nakon šest mjeseci razvoja, kompanija Oracle je izdala platformu Java SE 19 (Java Platform, Standard Edition 19), dok je za referentnu implementaciju korišten otvoreni projekt OpenJDK. Osim uklanjanja nekih zastarjelih funkcionalnosti, Java SE 19 zadržava unazadnu kompatibilnost s prethodnim izdanjima platforme Java — većina ranije napisanih Java projekata će raditi bez izmjena kada se pokrene na novoj verziji. Instalacijske verzije Java SE 19 (JDK, JRE i Server JRE) pripremljene su za Linux (x86_64, AArch64), Windows (x86_64) i macOS (x86_64, AArch64). Referentna implementacija Java 19 razvijena u okviru projekta OpenJDK je potpuno otvorena pod GPLv2 licencom uz iznimke GNU ClassPath, što omogućava dinamičko povezivanje s komercijalnim proizvodima.

Java SE 19 pripada kategoriji izdanja sa uobičajenim vremenom podrške, a ažuriranja će se izdavati do sljedećeg izdanja. Za dugotrajnu podršku (LTS) preporučuje se koristiti Java SE 17, čija će ažuriranja izlaziti do 2029. godine. Podsjetimo, od izdanja Java 10 projekt je prešao na novi proces razvoja, koji uključuje kraći ciklus formiranja novih izdanja. Nova funkcionalnost se sada razvija u jednoj neprekidno ažuriranoj master grani, u koju se uključuju gotove promjene, a svake šest mjeseci se odvaja grana za stabilizaciju novih izdanja.

Među novitetima Java 19 ističu se:

  • Predložena je preliminarna podrška za obrasce zapisa (record pattern), koja proširuje mogućnost uočavanja koja je uvedena u Java 16, koristeći alate za razdjeljivanje vrijednosti klasa tipa record. Na primjer: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • U verzijama za Linux osigurana je podrška za arhitekturu RISC-V.
  • Dodana je preliminarna podrška za API FFM (Foreign Function & Memory), koja omogućava interakciju Java programa s vanjskim kodom i podacima putem poziva funkcija iz vanjskih biblioteka i pristupa memoriji izvan JVM-a.
  • Dodana je podrška za virtualne tokove, koji predstavljaju lagane tokove, znatno olakšavajući pisanje i održavanje visokoperformantnih višekorisničkih aplikacija.
  • Predložena je četvrta preliminarna implementacija API-ja Vector, koja pruža funkcije za vektorske proračune koji se izvode korištenjem vektorskih instrukcija procesora x86_64 i AArch64, a omogućuje istodobnu primjenu operacija na više vrijednosti (SIMD). Za razliku od mogućnosti automatske vektorizacije skalarnih operacija koje se pružaju u JIT kompajleru HotSpot, novi API omogućuje izrijekom upravljanje vektorizacijom za paralelnu obradu podataka.
  • Dodana je treća eksperimentalna implementacija template matching u izrazima 'switch', koja omogućava korištenje fleksibilnih šablona u oznakama 'case', pokrivajući cijeli niz vrijednosti, za koje je prethodno bilo potrebno koristiti opsežne lance izraza '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(); };
  • Dodana je eksperimentalna API za strukturirani paralelizam, olakšavajući razvoj višedretvenih aplikacija obradom više zadataka koji se izvršavaju u različitim nitima kao jedinstvene jedinice.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster