Megjelent a JDK 25 LTS TLS kulcsexportálókkal és továbbfejlesztett hibakereséssel

Az Oracle bejelentette a Java JDK 25 elérhetőségét, amely a java fejlesztőkészlet soron következő kiadása a folyamatos, féléves kiadási ciklusban. A frissítés 18 új JDK Enhancement Proposal bevezetésével bővíti a nyelvi képességeket, javítja a teljesítményt és a stabilitást, valamint új biztonsági megoldásokat kínál. Ehhez a kiadáshoz az Oracle legalább nyolc évig biztosít hosszú távú támogatást.

Megjelent a JDK 25 LTS TLS kulcsexportálókkal és továbbfejlesztett hibakereséssel

Nyelvi és könyvtári fejlesztések a JDK-ban.

A nyelvi újdonságok között kiemelt szerepet kap az alapvető adattípusok (primitive types) támogatása a mintákban (patterns), az instanceof és a switch kifejezésekben. Ez egységesebb nyelvi modellt eredményez, és megkönnyíti a mesterséges intelligencia (AI) integrációját a Java-alkalmazásokba. Az új modulimport deklarációk (module import declarations) leegyszerűsítik a könyvtárak használatát azáltal, hogy a fejlesztők egyetlen importtal elérhetik a modul által exportált összes csomagot.

A kompakt forrásfájlok (compact source files) és az instance main metódusok (instance main methods) a kezdő fejlesztők és rendszergazdák számára biztosítanak alacsonyabb belépési küszöböt, mivel lehetővé teszik, hogy egyszerű programokat hozzanak létre a hagyományos boilerplate kód nélkül. A rugalmas konstruktorok (flexible constructor bodies) pedig nagyobb biztonságot nyújtanak, mivel engedélyezik a bemeneti adatok ellenőrzését és a számításokat még azelőtt, hogy a konstruktor kifejezetten meghívná a szülő osztályt (superclass).

A könyvtári bővítések között a structured concurrency segít kezelhetőbbé tenni a több szálon futó programokat azáltal, hogy a kapcsolódó feladatokat egy egységként kezeli. A scoped values új modellt kínál az adatok megosztására a szálak között, miközben hatékonyabb és átláthatóbb alternatívát jelent a thread-local változókkal szemben. A stable values API előzetes változata (stable values, preview) lehetőséget ad az immutábilis adatok rugalmas kezelésére, miközben a virtuális gép a final mezőkhöz hasonló optimalizációkat alkalmaz. A Vector API (vector API, incubator) továbbfejlesztett változata a vektorinstrukciók közvetlenebb kihasználását biztosítja a támogatott CPU-architektúrákon, ami különösen előnyös AI-hoz kapcsolódó számításoknál.

Biztonság, teljesítmény és közösségi háttér

A biztonsági újdonságok között szerepel a PEM formátumú kódolás (PEM encodings), amely új API-t ad a kriptográfiai objektumok – például kulcsok és tanúsítványok – kezelésére. A kulcsszármaztatási függvényekhez (key derivation function API) készült új megoldás a kvantumbiztos titkosítás (quantum-safe encryption) előkészítését szolgálja, és alapot teremt a hibrid titkosítási módszerekhez. A teljesítmény javítását szolgálják a kompakt objektumfejlécek (compact object headers), amelyek csökkentik a memóriahasználatot, valamint az ahead-of-time parancssoros ergonómia (ahead-of-time command-line ergonomics) és a módszerprofilozás (ahead-of-time method profiling), amelyek gyorsabb alkalmazásindítást és hatékonyabb JIT fordítást tesznek lehetővé.

A Java Flight Recorder (JFR) is számos fejlesztést kapott: a CPU-idő pontosabb profilozását (JFR CPU-time profiling), a kooperatív mintavételezést (JFR cooperative sampling) és a módszeridőzítés és -tracing (JFR method timing & tracing) funkciókat, amelyek célja a kód optimalizálása és a hibák okainak pontos feltárása. Mindezek a fejlesztések az OpenJDK közösség és a Java Community Process (JCP) együttműködésének eredményeként valósultak meg.

Ahogy az elején említettem, a JDK 25 a legújabb hosszú távú támogatással rendelkező kiadás, amely a 2023-ban megjelent JDK 21-et követi, amelyet 2029-ig támogatnak, valamint a 2021-es JDK 17-et, amelynek támogatása 2026-ig tart. A letöltések itt, a kiadási megjegyzések pedig itt érhetők el.

Gábor a Pingvinbázis alapítója és főszerkesztője, több mint 20 éves tapasztalattal rendelkezik a Linux rendszerek és az Open Source szoftverek területén. Jártas a Python, és a PHP nyelvben, valamint a BASH scriptelésben is.