Izdanje Java SE 19

Nakon šest mjeseci razvoja, Oracle je izdao Java SE 19 (Java Platform, Standard Edition 19), koja koristi OpenJDK projekt otvorenog koda kao referentnu implementaciju. Uz iznimku uklanjanja nekih zastarjelih značajki, Java SE 19 održava kompatibilnost s prethodnim izdanjima Java platforme - većina prethodno napisanih Java projekata radit će bez promjena kada se pokreću pod novom verzijom. Spremne za instalaciju 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 u okviru projekta OpenJDK, referentna implementacija Java 19 potpuno je otvorenog koda pod GPLv2 licencom, s GNU ClassPath iznimkama koje dopuštaju dinamičko povezivanje s komercijalnim proizvodima.

Java SE 19 klasificirana je kao redovita verzija podrške i nastavit će primati ažuriranja do sljedećeg izdanja. Grana dugoročne podrške (LTS) trebala bi biti Java SE 17, koja će nastaviti primati ažuriranja do 2029. godine. Podsjetimo, počevši od izdanja Jave 10, projekt je prešao na novi razvojni proces, koji podrazumijeva kraći ciklus za formiranje novih izdanja. Nova funkcionalnost sada je razvijena u jednoj stalno ažuriranoj glavnoj grani, koja uključuje gotove promjene i iz koje se grane granaju svakih šest mjeseci kako bi se stabilizirala nova izdanja.

Nove značajke u Javi 19 uključuju:

  • Predložena je preliminarna podrška za uzorke zapisa, proširujući značajku podudaranja uzoraka uvedenu u Javi 16 s alatima za raščlanjivanje vrijednosti klasa zapisa. 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 međugradnje pružaju podršku za RISC-V arhitekturu.
  • Dodana je preliminarna podrška za FFM (Foreign Function & Memory) API, koji vam omogućuje organiziranje interakcije Java programa s vanjskim kodom i podacima pozivanjem funkcija iz vanjskih biblioteka i pristupanjem memoriji izvan JVM-a.
  • Dodana podrška za virtualne niti, koje su lagane niti koje uvelike pojednostavljuju pisanje i održavanje visokoučinkovitih višenitnih aplikacija.
  • Predložen je četvrti pregled vektorskog API-ja, koji pruža funkcije za vektorske izračune koji se izvode pomoću vektorskih instrukcija na x86_64 i AArch64 procesorima i omogućuju simultanu primjenu operacija na višestruke vrijednosti (SIMD). Za razliku od mogućnosti koje pruža HotSpot JIT kompajler za automatsku vektorizaciju skalarnih operacija, novi API omogućuje eksplicitnu kontrolu vektorizacije za paralelnu obradu podataka.
  • Dodana je treća eksperimentalna implementacija podudaranja uzoraka u "switch" izrazima, dopuštajući korištenje u oznakama "case" ne točnih vrijednosti, već fleksibilnih uzoraka koji pokrivaju niz vrijednosti odjednom, za što je prije bilo potrebno koristite glomazne lance izraza "ako... inače". 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("Niz %s", s); zadano -> o.toString(); };
  • Dodan je eksperimentalni API za strukturirani paralelizam, koji pojednostavljuje razvoj aplikacija s više niti tretirajući više zadataka koji se izvode u različitim nitima kao jedan blok.

Izvor: opennet.ru

Dodajte komentar