Symbolbild: Oracle

Der im texanischen Austin angesiedelte IT-Riese Oracle hat die Verfügbarkeit von Java 23 bekannt gegeben, der neuesten Version der Programmiersprache und Entwicklungsplattform Java. Java 23 (Oracle JDK 23) wartet mit einer Vielzahl von Verbesserungen auf, die die Leistung, Stabilität und Sicherheit von Entwicklungen vorantreiben sollen.

Java 23 wird dabei auch beispielsweise durch die kürzlich erfolgte Freigabe von Java Management Service 9.0 unterstützt, einem nativen Dienst der Oracle Cloud Infrastructure (OCI), der eine einheitliche Konsole und ein Dashboard bietet, mit denen Unternehmen Java-Laufzeitumgebungen und -Anwendungen vor Ort oder in einer beliebigen Cloud verwalten können. Darüber hinaus bietet der Java Management Service 9.0 zahlreiche Verbesserungen der Benutzerfreundlichkeit. Oracle JDK 23 stellt zudem mehr Optionen für Fein-Tuning und Verbesserung der maximalen Leistung durch das Hinzufügen des Graal-Compilers bereit, eines dynamischen, in Java geschriebenen Just-in-Time-Compilers (JIT), der Bytecode in optimierten Maschinencode umwandelt.

Wesentliche Aktualisierungen in Java 23 sind:

Sprachfunktionen über das Projekt Amber:
- JEP 455: Primitive Types in Patterns, instanceof und switch (Preview): Steigert die Produktivität der Java-Programmierung, durch einheitlicheren und aussagekräftigeren Code. Durch die Beseitigung von Beschränkungen in Bezug auf Primitive Types, auf die Entwickler beim Pattern-Matching, instanceof und switch treffen, wird Pattern-Matching verbessert, indem Pattern primitiver Typen in allen Kontexten zugelassen werden, und instanceof und switch werden so erweitert, dass sie mit allen primitiven Typen funktionieren.
- JEP 476: Module Import Declarations (Preview): Hilft Entwicklern, ihre Produktivität zu steigern, indem sich alle von einem Modul exportierten Pakete schnell und einfach importieren lassen, ohne dass der importierte Code selbst in einem Modul enthalten sein muss. Dies vereinfacht die Wiederverwendung modularer Bibliotheken für alle Entwickler und hilft Einsteigern, Bibliotheken von Drittanbietern und grundlegende Java-Klassen leichter zu verwenden, ohne lernen zu müssen, wo sie sich in einer Pakethierarchie befinden.
- JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview): Beschleunigt das Lernen und die Entwicklung von Fähigkeiten, indem es einen sanften Einstieg in die Java-Programmierung bietet. Ermöglicht es Neulingen erste Programme zu schreiben, ohne dass die für grosse Programme konzipierten Sprachfunktionen anfänglich verstanden werden müssen. So können Lehrkräfte und Ausbilder Konzepte schrittweise einführen, und die Lernende können kompakte Deklarationen für Programme einer Klasse schreiben und ihre Programme mit zunehmenden Fähigkeiten nahtlos um fortgeschrittenere Funktionen erweitern. Darüber hinaus können erfahrene Java-Entwickler kleine Programme kurz und knapp schreiben, ohne die für umfangreicher und größere Projekte konzipierten Tools verwenden zu müssen.
- JEP 482: Flexible Constructor Bodies (Second Preview): Hilft Entwicklern, ihre Produktivität zu steigern, indem es Anweisungen vor einem expliziten Konstruktoraufruf - wie super(..) oder this(..) - zulässt. Die Anweisungen können nicht auf die zu konstruierende Instanz verweisen, aber deren Felder initialisieren, bevor ein anderer Konstruktor aufgerufen wird, wodurch eine Klasse zuverlässiger wird, wenn Methoden überschrieben werden. Dies gibt Entwicklern eine größere Freiheit, das Verhalten von Konstruktoren auszudrücken und bewahrt die bestehende Garantie, dass Konstruktoren während der Klasseninstanziierung in der Reihenfolge von oben nach unten ausgeführt werden.
Bibliotheken:
- JEP 466: Class-File API (Second Preview): Hilft Entwicklern, ihre Produktivität zu steigern, indem es eine Standard-API für das Parsen, Generieren und Transformieren von Java-Klassendateien bereitstellt.
- JEP 469: Vector API (Eighth Incubator): Hilft Entwicklern, ihre Produktivität zu steigern, indem es eine API zur Formulierung von Vektorberechnungen einführt, die zur Laufzeit zuverlässig in Vektorbefehle auf unterstützte CPU-Architekturen kompiliert werden. Dadurch können Entwickler eine höhere Leistung erzielen als bei gleichwertigen Skalarberechnungen.
- JEP 473: Stream Gatherers (Second Preview): Hilft Entwicklern, ihre Produktivität zu steigern, indem die Stream-API so erweitert wird, so dass sie benutzerdefinierte Zwischenoperationen unterstützt, mit denen Stream-Pipelines Daten auf eine Weise transformieren können, die mit den vorhandenen integrierten Zwischenoperationen nicht ohne weiteres möglich ist. Da Stream-Pipelines flexibler und ausdrucksstärker sind und benutzerdefinierte Zwischenoperationen Streams unendlicher Größe verändern können, ermöglicht dieses Feature Entwicklern, beim Lesen, Schreiben und Warten von Java-Code effizienter zu werden.
- JEP 480: Structured Concurrency (Third Preview): Unterstützt Entwickler bei der Verbesserung der Wartbarkeit, Zuverlässigkeit und Überwachung von Multithreading-Code durch Vereinfachung der Concurrent-Programmierung über eine neue API für Structured Concurrency. Durch die Konsolidierung von Gruppen verwandter Aufgaben, die in verschiedenen Threads ausgeführt werden, zu einer einzelnen Arbeitseinheit kann die Structured Concurrency dazu beitragen, allgemeine Risiken zu beseitigen, die sich aus dem Abbruch und dem Herunterfahren ergeben, wie z. B. Thread-Leaks und Abbruchverzögerungen.
- JEP 481: Scoped Values (Third Preview): Hilft Entwicklern, die Benutzerfreundlichkeit, Verständlichkeit, Leistung und Robustheit ihrer Projekte zu erhöhen, indem es die gemeinsame Nutzung von Immutable-Data innerhalb und zwischen Threads ermöglicht.

Performance und Runtime Updates:
- JEP 474: ZGC: Generational Mode by Default: Hilft Entwicklern, die Effizienz zu steigern, indem der Standardmodus des Z Garbage Collectors (ZGC) auf den Generational-Modus umgestellt wird, wodurch die für die Unterstützung zweier unterschiedlicher Modi erforderlichen Ressourcen und Wartungskosten reduziert werden.
Tools:
- JEP 467: Markdown Documentation Comments: Hilft Entwicklern, ihre Effizienz und Produktivität zu steigern, indem Javadoc-Dokumentationskommentare in Markdown geschrieben werden können, anstatt nur in HTML und Javadoc @-Tags. Durch die Möglichkeit, die Markdown-Syntax in Dokumentationskommentaren neben HTML-Elementen und JavaDoc-Tags zu verwenden, können Entwickler API-Dokumentationskommentare einfacher in Quellenform schreiben und lesen, ohne die Interpretation bestehender Dokumentationskommentare zu beeinträchtigen.

Stewardship:
JEP 471: Deprecate Memory-Access Methods in sun.misc.unsafe for Removal: Bietet Entwicklern ein konsolidiertes Toolset, indem es ihnen hilft besser zu verstehen, wann ihre Anwendungen direkt oder indirekt auf die Memory-Zugriffsmethoden in sun.misc.Unsafe angewiesen sind, die in einer zukünftigen Version entfernt werden sollen.

Die neuen Funktionen in Java 23 entstanden in enger Zusammenarbeit zwischen Oracle und anderen Mitgliedern der weltweiten Java-Entwickler-Community über OpenJDK und den Java Community Process (JCP).

Durch die kostenlose Bereitstellung von Oracle Java SE, Oracle GraalVM und dem Java SE Subscription Enterprise Performance Pack auf der Hyperscale-Clouds OCI unterstütze Java 23 Entwickler bei der Erstellung und Bereitstellung von Anwendungen, die schneller, besser und mit optimierter Kosten-Performance laufen, verspricht Oracle in der Aussendung dazu. Wbei es sich bei Oracle Java Universal SE Subscription um ein Pay-as-you-go-Angebot handelt, das Anwenderfirmen einen erstklassigen Support bieten soll. Es umfasse Support für das gesamte Java-Portfolio, Anspruch auf Oracle GraalVM, das Java SE Subscription Enterprise Performance Pack, Zugang zu den erweiterten Funktionen vom Java Management Service und die Flexibilität, Upgrades in dem Tempo durchzuführen, in dem die Kunden ihr Geschäft betreiben.

Javaone kehrt 2025 zurück:
Das Flaggschiff der weltweiten Java-Community, Javaone, kehrt übrigens 2025 in die San Francisco Bay Area zurück. Sie findet vom 17. bis 20. März 2025 in Redwood Shores in Kalifornien statt und bietet den Teilnehmern die Möglichkeit, sich über die neuesten Java-Entwicklungen zu informieren und mit den Java-Experten von Oracle und anderen Industrieexperten zu sprechen.



Der Online-Stellenmarkt für ICT Professionals