Java SE 19 kiadás

Hat hónapos fejlesztés után az Oracle kiadta a Java SE 19-et (Java Platform, Standard Edition 19), amely az OpenJDK nyílt forráskódú projektet használja referencia megvalósításként. Néhány elavult szolgáltatás eltávolítása kivételével a Java SE 19 fenntartja a visszamenőleges kompatibilitást a Java platform korábbi kiadásaival – a legtöbb korábban írt Java projekt továbbra is módosítás nélkül működik az új verzió alatt. A Java SE 19 (JDK, JRE és Server JRE) telepíthető buildjei Linux (x86_64, AArch64), Windows (x86_64) és macOS (x86_64, AArch64) számára készültek. Az OpenJDK projekt által kifejlesztett Java 19 referenciaimplementáció teljesen nyitott a GPLv2 licenc alatt, GNU ClassPath kivételekkel, hogy lehetővé tegye a kereskedelmi termékekhez való dinamikus hivatkozást.

A Java SE 19 rendszeres támogatási kiadásként van besorolva, a frissítéseket a következő kiadás előtt kell kiadni. A Long Term Support (LTS) ága a Java SE 17 legyen, amely 2029-ig kap frissítéseket. Emlékezzünk vissza, hogy a Java 10 kiadásától kezdve a projekt új fejlesztési folyamatra váltott, ami rövidebb ciklust jelent az új kiadások kialakításához. Az új funkciók fejlesztése most egy folyamatosan frissített fő ágban történik, amely magában foglalja a már befejezett változtatásokat, és amelyből félévente leágaznak az ágak az új kiadások stabilizálása érdekében.

A Java 19 új funkciói a következők:

  • Javasolták a rekordminták előzetes támogatását, amely kiterjeszti a Java 16 mintaillesztési képességét a rekord osztályok értékeinek elemzésére. Például: rekord Pont(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • A Linux buildek támogatják a RISC-V architektúrát.
  • Hozzáadott előzetes támogatás az FFM (Foreign Function & Memory) API-hoz, amely lehetővé teszi a Java programok külső kóddal és adatokkal való interakciójának megszervezését a külső könyvtárak függvényeinek meghívásával és a JVM-en kívüli memória elérésével.
  • Hozzáadott támogatás a virtuális szálak számára, amelyek könnyű szálak, amelyek nagymértékben leegyszerűsítik a nagy teljesítményű többszálas alkalmazások írását és karbantartását.
  • Javasoljuk a Vector API negyedik előzetes megvalósítását, amely funkciókat biztosít az x86_64 és AArch64 processzorok vektorutasításaival végrehajtott vektorszámításokhoz, és lehetővé teszi a műveletek egyidejű alkalmazását több értékre egyszerre (SIMD). A HotSpot JIT fordítóban a skaláris műveletek autovektorizálásához biztosított képességekkel ellentétben az új API lehetővé teszi a vektorizálás explicit vezérlését párhuzamos adatfeldolgozáshoz.
  • Bekerült a kapcsolókifejezésekben a mintaillesztés harmadik kísérleti megvalósítása, amely lehetővé teszi rugalmas sablonok használatát azokban az esetcímkékben, amelyek egyszerre fednek le értékeket, amelyekhez korábban nehézkes if...else utasítások láncait használták. o objektum = 123L; String formázott = 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); alapértelmezett -> o.toString(); };
  • Egy kísérleti Structured Parallelism API került hozzáadásra, amely megkönnyíti a többszálú alkalmazások fejlesztését azáltal, hogy több különböző szálon futó feladatot egyetlen egységként kezel.

Forrás: opennet.ru

Hozzászólás