A Java SE 27 és OpenJDK 27 kiadása

Hat hónapnyi fejlesztés után az Oracle kiadta a Java SE 27 (Java Platform, Standard Edition 27) platformot, melynek referencia-implementációja az OpenJDK nyílt projekt. Az Java SE 27 megtartotta a visszafelé kompatibilitást a korábbi Java platform verziókkal, kivéve néhány elavult lehetőség eltávolítását — a korábban készített Java-projektek többsége módosítás nélkül működni fog az új verzió alatt. A Java SE 27 telepíthető kiadásai (JDK, JRE és Server JRE) előkészítésre kerültek Linux (x86_64, AArch64), Windows (x86_64) és macOS (x86_64, AArch64) rendszerekhez. Az OpenJDK keretében kifejlesztett Java SE 27 referencia-implementációja teljesen nyílt a GPLv2 licenc alatt, GNU ClassPath kivételekkel, amelyek lehetővé teszik a dinamikus kötést kereskedelmi termékekkel.

A Java SE 27 a normál támogatási ciklusba tartozó kiadások közé sorolandó, amelyek frissítéseit a következő kiadásig fogják kiadni. Hosszú távú támogatású (LTS) ágnak a Java SE 25, Java SE 21 vagy Java SE 17 javasolt használata, amelyek frissítései 2033-ig, 2031-ig és 2029-ig, megfelelően, (nyilvánosan elérhetőek — 2030, 2028 és 2026 szeptemberéig). A Java SE 8 LTS ágának kiterjesztett támogatása 2030-ig, míg a Java SE 11-nek 2032-ig fog tartani.

A Java SE 27-ben végrehajtott változások (1, 2, 3, 4):

  • Alapértelmezés szerint minden környezethez a G1 (Garbage-First) szemétgyűjtő kerül alkalmazásra, amelyet korábban szerverrendszerekben használtak. A G1 optimalizálva van a multiprocesszoros rendszerekhez, nagy memória használat mellett, a késleltetés előrejelzése és a magas áteresztőképesség közötti egyensúlyozásra. A G1 működése során a memóriát sok kis régióra osztja, és elsődlegesen azokat a régiókat tisztítja meg, ahol több a fel nem használt objektum és kevesebb az aktívan használt adat.
  • A HotSpot JVM alapértelmezés szerint kompakt objektumfejléceket használ. A 64 bites rendszerek fejléceinek mérete 96 bitről 64 bitre csökkent, ami csökkentette a memóriafogyasztást és növelte az adatok valószínűségét a processzor gyorsítótárába. A SPECjbb2015 tesztek során a memóriafogyasztás 22%-kal, a CPU terhelése 8%-kal csökkent, és a szemétgyűjtő műveletek száma 15%-kal egy csökkent. JSON parser tesztelésekor a tesztelési idő 10%-kal csökkent.
  • A TLS 1.3 megvalósításába beletartozik a hibrid kulcsegyesítési sémák támogatása, amely az ML-KEM (CRYSTALS-Kyber) algoritmust kombinálja, amely ellenálló a kvantumszámítógépekkel szemben, klasszikus elliptikus görbéken alapuló ECDHE algoritmusokkal: X25519MLKEM768 (ECDHE X25519 görbével + ML-KEM-768), SecP256r1MLKEM76 (ECDHE secp256r1 görbével + ML-KEM-768) és SecP384r1MLKEM1024 (ECDHE secp384r1 görbével + ML-KEM-1024). Az API javax.net.ssl Ezek a sémák alapértelmezés szerint engedélyezve vannak, és nem igényelnek módosítást a programokban.
  • A JDK Flight Recorder (JFR) eszközkészlethez, amelyet a teljesítmény monitorozására, profilozására és diagnosztizálására használnak, hozzáadták a tisztítás támogatását a mentett diagnosztikai információkban, mint például a parancssori argumentumok, a környezeti változók kezdeti értékei és a rendszer tulajdonságai. A változtatás megakadályozza a bizalmas adatok szivárgását, amelyeket a profilozott folyamat kezel, mint például az környezeti változókon keresztül átadott hitelesítési tokenek és API hozzáférési kulcsok.
  • Megvalósult a Lazy Constants API harmadik előzetes kiadása az olyan objektumokkal való munkához, amelyek módosíthatatlan adatokat tartalmaznak és a JVM-ben konstansként kezelik őket. Az ilyen objektumokra teljesítményoptimalizáló eljárásokat alkalmaznak, hasonlóan a 'final' kulcsszóval ellátott mezőkhöz. A 'final'-tól eltérően az új API elkülöníti a konstans értékek létrehozását és inicializálását, garantálva, hogy az érték csak egyszer inicializálható, csökkenti a programok indítási idejét, és lehetővé teszi a felhasználói kódban a konstansok összevonására (constant-folding) alkalmazott optimalizálásokat, amelyeket korábban csak a JDK belső kódjában használtak. class Application { // Volt: // static final UserService USERS = new UserService(); // Most már lehet: static final StableValue<UserService> USERS = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • A mintázatmintázási mechanizmusban javasolták az ötödik előzetes verzióját a primitív típusok (int, byte, char és egyéb alapvető típusok, amelyek nem objektumok) használatának lehetősége iránt mindenféle minta esetén, az 'instanceof' operátorban és 'switch' blokkokban. switch (x.getStatus()) { case 0 -> 'okay'; case 1 -> 'warn'; case 2 -> 'error'; case int i -> 'ismeretlen státusz: ' + i; } if (i instanceof byte b) { … b … }
  • A hetedik előzetes API verzió ajánlott a strukturált párhuzamosság (Structured Concurrency) tesztelésére, amely megkönnyíti a több szálon futó alkalmazások fejlesztését azáltal, hogy a különböző szálakon végrehajtott feladatokat egyetlen blokkként kezeli.
  • Megvalósult a tizenkettedik tesztelési API megvalósítás, amely vektoros számítási funkciókat biztosít, és a x86_64 és AArch64 processzorok vektoriális utasításait használva lehetővé teszi több érték egyidejű kezelését (SIMD). Ezzel szemben a JIT-kompilátor HotSpot által nyújtott avtvorkolási lehetőségekkel összhangban a új API lehetőséget ad a vektorizálás explicit kezelésére az adatok párhuzamos feldolgozása érdekében.
  • Elérhető a harmadik előzetes API verzió a kriptográfiai kulcsokkal, tanúsítványokkal és visszavont tanúsítványok listáival való objektumok kódolására és dekódolására, a PEM (Privacy-Enhanced Mail) formátum használatával.

Továbbá érdemes megemlíteni a JavaFX 27 grafikus felhasználói felületű alkalmazások fejlesztésére szolgáló platform frissítésének megjelenését. A következő órákban várható a GraalVM 27 univerzális virtuális gép kiadása is, amely támogatja a JavaScript (Node.js), Python, Ruby, R, bármilyen JVM-n nyelven (Java, Scala, Clojure, Kotlin) és LLVM bitkódot képező nyelvek (C, C++, Rust) futtatását.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster