Künstliche Intelligenz

Java 25 ist da: Schlanke Programme, unveränderliche Werte und Long-term Support


Oracle hat offiziell das OpenJDK 25 angekündigt. Das Release bietet insgesamt 18 JEPs (JDK Enhancement Proposals), von denen viele als final gekennzeichnet sind.

Die Versionsnummer stimmt nur zufällig mit der Jahreszahl überein: Seit 2017 erscheint das OpenJDK-Projekt regelmäßig im Sechsmonatstakt. Im kommenden Frühjahr passen Jahr und Versionsnummer erneut zusammen, aber Java 27 erscheint im Herbst 2026.

Alle zwei Jahre erscheinen viele Java-Distributionen mit Long-term Support (LTS), und Java 25 ist dafür vorgesehen. So verspricht beispielsweise Oracle kommerziellen Support bis mindestens September 2033. Azul und weitere Java-Distributoren bieten ähnliche Support-Zeiträume.



Das Oracle-Release von Java 25 erhält mindestens acht Jahre kommerziellen Support.

(Bild: Oracle)

Da die regulären Java-Releases jeweils nur sechs Monate Support erhalten, löst Java 25 den Vorgänger ab.

Bei der Zahl der JEPs kann das aktuelle Release zwar nicht mit dem Vorgänger mithalten, das passend zur Versionsnummer 24 JEPs mitgebracht hat, dafür bietet Java 25 wie frühere LTS-Releases besonders viele fertige Proposals: Zweidrittel der JEPs gelten als final.



Zwölf von achtzehn JEPs gelten als final, aber die Vector API bleibt Dauergast im Inkubator.

(Bild: Oracle)

Zu den wichtigsten Neuerungen in Java 25 gehören unveränderliche Werte: Stable Values lassen sich genau einmal initialisieren und anschließend nur lesen. Das ermöglicht der Java Virtual Machine (JVM) Optimierungen, da sie den Inhalt wie Konstanten behandelt.




(Bild: Playful Creatives / Adobe Stock)

Am 14. Oktober dreht sich bei der betterCode() Java 2025 alles um das frisch veröffentlichte Java 25. Die von iX und dpunkt verlag ausgerichtete Online-Konferenz behandelt in sechs Vorträgen die wesentlichen Neuerungen. Eine Keynote von Adam Bien zu 30 Jahren Java rundet den Tag ab.

Auch Scoped Values gelten nun als final. Sie bieten Thread-übergreifenden, gesicherten Zugriff auf Werte, um globale Zustände darzustellen. Scoped Values sind ebenfalls unveränderlich und haben eine klar definierte Lebensdauer.

Einige Neuerungen sollen den Einstieg in Java vereinfachen und besser lesbaren Code ermöglichen. Dazu gehören die Flexible Constructor Bodies, die (eingeschränkte) Anweisungen vor dem Aufruf von super erlauben, um beispielsweise Validierungen durchzuführen.

Das JEP mit dem etwas sperrigen Namen Compact Source Files & Instance-main ermöglicht schlankere Programme und kann Boilerplate-Code reduzieren.

Auch das JEP für Module Import Declarations dient dem Abbau von Boilerplate-Code, indem alle exportierten Pakete eines Moduls mit einer Deklaration verfügbar sind.

Während die genannten JEPs in Java 25 final sind, bleibt die Vector API als Dauerbrenner im Inkubator – bereits in der zehnten Runde. Sie dient dazu, aktuelle CPU-Architekturen und Befehlserweiterungen wie Single Instruction Multiple Data (SIMD) und Vektorprozessoren für die Vektorberechnung zu nutzen.

Bevor JEPs als final gelten, durchlaufen sie bei der Weiterentwicklung des OpenJDK üblicherweise zwei Stufen: den Inkubator und die Preview. Der Inkubator ist die experimentelle Stufe, die anzeigt, dass die Funktionen bislang nicht ausgereift sind, sich grundlegend ändern können und eventuell gar nicht in die Sprache einfließen. Den Inkubator durchlaufen nicht alle Neuerungen, sondern einige gehen direkt in die Preview und andere sogar ohne Vorschau in die Sprache über.

Preview-Features sind vollständig spezifiziert und implementiert, können aber noch Veränderungen erfahren. Zwar gibt es keine Garantie, dass sie tatsächlich in der Sprache landen, aber bei Preview-Features ist das sehr wahrscheinlich, wie die Vergangenheit gezeigt hat.

Wer mehr als diesen kurzen Überblick mit den wichtigsten Features von Java 25 lesen möchte: Zwei Blogbeiträge auf der Developer-Seite bei heise stellen alle achtzehn JEPs im aktuellen JDK detailliert vor:

Die vollständige Übersicht über die neuen Features findet sich zudem in den Release Notes zum JDK 25.


(rme)



Source link

Beliebt

Die mobile Version verlassen