Java SE 19 izdanje

Nakon šest mjeseci razvoja, Oracle je objavio platformu Java SE 19 (Java Platform, Standard Edition 19), koja koristi OpenJDK open source projekat kao referentnu implementaciju. Sa izuzetkom uklanjanja nekih zastarjelih funkcija, Java SE 19 održava kompatibilnost unatrag s prethodnim izdanjima Java platforme—većina prethodno napisanih Java projekata će i dalje raditi bez modifikacija kada se pokrene pod novom verzijom. 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). Razvijena od strane OpenJDK projekta, Java 19 referentna implementacija je potpuno otvorenog koda pod GPLv2 licencom sa GNU ClassPath izuzecima kako bi se omogućilo dinamičko povezivanje sa komercijalnim proizvodima.

Java SE 19 je kategorizirana kao redovno izdanje podrške, s ažuriranjima koja će biti objavljena prije sljedećeg izdanja. Ogranak za dugoročnu podršku (LTS) bi trebao biti Java SE 17, koji će primati ažuriranja do 2029. godine. Podsjetimo, počevši od izdavanja Jave 10, projekat je prešao na novi razvojni proces, koji podrazumijeva kraći ciklus za formiranje novih izdanja. Nova funkcionalnost se sada razvija u jednoj stalno ažuriranoj glavnoj grani, koja uključuje već završene promjene i iz koje se grane granaju svakih šest mjeseci kako bi se stabilizirala nova izdanja.

Nove funkcije u Javi 19 uključuju:

  • Predložena je preliminarna podrška za obrasce zapisa, koja proširuje sposobnost podudaranja Java 16 uzoraka za raščlanjivanje 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); } }
  • Linux verzije pružaju podršku za RISC-V arhitekturu.
  • Dodata je preliminarna podrška za FFM (Foreign Function & Memory) API, koji vam omogućava da organizujete interakciju Java programa sa eksternim kodom i podacima putem pozivanja funkcija iz eksternih biblioteka i pristupa memoriji izvan JVM-a.
  • Dodata podrška za virtuelne niti, koje su lagane niti koje uvelike pojednostavljuju pisanje i održavanje višenitnih aplikacija visokih performansi.
  • Predložena je četvrta preliminarna implementacija Vector API-ja, koja pruža funkcije za vektorske proračune koje se izvode pomoću vektorskih instrukcija procesora x86_64 i AArch64 i omogućavaju simultanu primjenu operacija na nekoliko vrijednosti odjednom (SIMD). Za razliku od mogućnosti koje pruža HotSpot JIT kompajler za autovektorizaciju skalarnih operacija, novi API omogućava eksplicitnu kontrolu vektorizacije za paralelnu obradu podataka.
  • Dodana je treća eksperimentalna implementacija podudaranja uzoraka u switch izrazima, koja omogućava korištenje fleksibilnih šablona u oznakama slučaja koje pokrivaju niz vrijednosti odjednom, za koje su prethodno korišteni glomazni lanci if...else izjava. Objekt o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Dugi l -> String.format("dugi %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Dodan je eksperimentalni API za strukturirani paralelizam koji olakšava razvoj aplikacija s više niti tretirajući više zadataka koji se pokreću na različitim nitima kao jednu jedinicu.

izvor: opennet.ru

Dodajte komentar