Das neue Release bietet 12 JDK Enhancement Proposals zur Verbesserung der Java-Sprache und zur Steigerung der Performance, Stabilität und Sicherheit der Entwicklungsplattform.
Austin, Texas—20. März 2024
Oracle hat die Verfügbarkeit von Java 22, der neuen Version der weltweit führenden Programmiersprache und Entwicklungsplattform, angekündigt. Java 22 (Oracle JDK 22) bietet eine Vielzahl von Performance-, Stabilitäts- und Sicherheitsverbesserungen, die es Entwicklern ermöglichen, ihre Produktivität zu steigern und Innovation und Wachstum im gesamten Unternehmen zu fördern. Dazu gehören Verbesserungen der Java-Sprache, ihrer APIs, der Performance und der JDK-Tools.
„Die Verbesserungen in Java 22 erlauben es Entwicklern, schnell und einfach funktionsreiche, skalierbare und sichere Anwendungen zu erstellen und bereitzustellen, um globale Unternehmen beim Wachstum zu unterstützen“, sagte Georges Saab, Senior Vice President, Oracle Java Platform und Vorsitzender des OpenJDK Governing Board. „Durch die Bereitstellung von Verbesserungen, die die Anwendungsentwicklung optimieren und die Reichweite von Java erweitern, um es Entwicklern mit unterschiedlichen Fähigkeiten zugänglich zu machen, wird Java 22 dazu beitragen, die Entwicklung einer breiten Palette neuer Anwendungen und Dienste für Unternehmen und Entwickler gleichermaßen voranzutreiben.“
Das neue Java Development Kit (JDK) bietet Updates und Verbesserungen mit 12 JDK Enhancement Proposals (JEP‘s). JDK 22 bietet Sprachverbesserungen aus dem OpenJDK Project Amber (Statements before super[…], Unnamed Variables & Patterns, String Templates, and Implicitly Declared Classes and Instance Main Methods), Verbesserungen von Project Panama (Foreign Function & Memory API und Vector API), Features im Zusammenhang mit Project Loom (Structured Concurrency und Scoped Values); wichtige Features von Bibliotheken und Tools (Class-File API, Launch Multi-File Source-Code Programs, Stream Gatherers) und Performance-Updates (Region Pinning für G1 GC).
„Nach fast drei Jahrzehnten macht die Fähigkeit von Java, komplexe Entwicklungsaufgaben in einem breiten Spektrum von Anwendungsfällen zu unterstützen, die Plattform relevanter denn je“, so Arnal Dayaratna, Research Vice President, Software Development, IDC. „Dank seiner Vielseitigkeit und der Fülle an Werkzeugen ist Java in der Lage, die Entwicklung produktionstauglicher, geschäftskritischer Anwendungen optimal zu unterstützen. Das macht es zu einer Schlüsseltechnologie für innovative Anwendungsfälle wie die generative KI.“
Wesentliche Merkmale in Java 22 sind:
Project Amber – Features
JEP 447: Statements before super(…): Bietet Entwicklern die Möglichkeit, das Verhalten von Konstruktoren auszudrücken. Durch die Möglichkeit, Anweisungen, die nicht auf die erzeugte Instanz verweisen, vor einem expliziten Konstruktoraufruf anzuzeigen, ermöglicht dieses Feature eine natürlichere Platzierung der Logik, die in statischen Hilfsmethoden, zusätzlichen Zwischenkonstruktoren oder Konstruktorargumenten enthalten sein muss. Darüber hinaus wird die bestehende Zusicherung, dass Konstruktoren während der Klasseninstanziierung von oben nach unten ausgeführt werden, beibehalten. Dadurch wird sichergestellt, dass Code in einem Subclass-Konstruktor die Instanziierung der Oberklasse nicht beeinträchtigen kann. Darüber hinaus erfordert dieses Feature keine Änderungen an der Java Virtual Machine und basiert lediglich auf der Fähigkeit der JVM, Code, der in Konstruktoren vor expliziten Konstruktoraufrufen angezeigt wird, zu überprüfen und auszuführen.
JEP 456: Unnamed Variables & Patterns: Trägt zur Verbesserung der Produktivität von Entwicklern bei, indem die Java-Sprache um Unnamed-Variablen und Pattern erweitert wird, die verwendet werden können, wenn Variablendeklarationen oder verschachtelte Pattern erforderlich sind, aber nie tatsächlich verwendet werden. Dies reduziert mögliche Fehler, verbessert die Lesbarkeit von Record-Pattern und erhöht die Wartbarkeit des gesamten Codes.
JEP 459: String Templates (Second Preview): Vereinfacht die Entwicklung von Java-Programmen und erleichtert das Ausdrücken von Zeichenfolgen, die zur Laufzeit berechnete Werte enthalten. Außerdem wird die Sicherheit von Programmen verbessert, die Zeichenfolgen aus den von Benutzern bereitgestellten Werten zusammensetzen und sie an andere Systeme weitergeben. Darüber hinaus wird die Lesbarkeit von Ausdrücken verbessert, die mit Text vermischt sind. Non-String-Values können erstellt werden, die aus Literaltext und eingebundenen Ausdrücken berechnet werden, ohne dass eine Überführung in eine Intermediate-String-Darstellung erforderlich ist.
JEP 463: Implicitly Declared Classes and Instance Main Methods (Second Preview): Trägt zur Beschleunigung des Lernprozesses bei, indem es einen sanften Einstieg in die Java-Programmierung ermöglicht, so dass Schüler ihre ersten Programme schreiben können, ohne die für größere Programme entwickelten Sprachfunktionen im Detail verstehen zu müssen. Diese Funktion ermöglicht es Lehrern, Konzepte schrittweise einzuführen, und Schülern, optimierte Deklarationen für Single-Class-Programme zu schreiben und ihre Programme nahtlos zu erweitern, um anspruchsvollere Funktionen zu nutzen, wenn ihre Fähigkeiten zunehmen.
Project Loom – Features
JEP 462: Structured Concurrency (Second Preview): Unterstützt Entwickler bei der gezielten Fehlerbehandlung und-behebung und verbessert die Überwachung durch die Einführung einer Structured-Concurrency-API. Dies trägt dazu bei, einen Concurrent-Programmier-Stil zu fördern, der vorhandene Risiken beseitigen kann, die sich aus dem Abbruch und dem Herunterfahren ergeben (zum Beispiel Thread-Leaks und Abbruchverzögerungen) und die Überwachung von nebenläufigem Code verbessert.
JEP 464: Scoped Values (Second Preview): Trägt dazu bei, die Benutzerfreundlichkeit, Verständlichkeit, Performance und Robustheit von Entwicklerprojekten zu verbessern, indem die gemeinsame Nutzung unveränderlicher Daten innerhalb und zwischen Threads ermöglicht wird.
Project Panama – Features
JEP 454: Foreign Function & Memory API: Verbessert die Benutzerfreundlichkeit, Flexibilität, Sicherheit und Leistung für Entwickler durch die Einführung einer API, die es Java-Programmen ermöglicht, mit Code und Daten außerhalb der Java-Laufzeitumgebung zu interagieren. Durch den effizienten Aufruf von Fremdfunktionen, wie Code außerhalb der Java Virtual Machine (JVM) und durch den sicheren Zugriff auf Fremd-Memory (das heißt Memory, der nicht von der JVM verwaltet wird) ermöglicht diese neue API Java-Programmen ohne erforderliches Java Native Interface (JNI), native Bibliotheken aufzurufen und native Daten zu verarbeiten.
JEP 460: Vector API (Seventh Incubator): Führt eine API zum Formulieren von Vektorberechnungen ein, die zur Laufzeit zuverlässig in Vektoranweisungen für die unterstützten Prozessorarchitekturen kompiliert werden. Dies hilft Entwicklern, die Projektperformance zu verbessern, da ihnen API-Zugriff gewährt wird, um ein breites Spektrum an Vektorberechnungen klar und prägnant auszudrücken.
Core-Bibliotheken und Tools
JEP 457: Class-File API (Preview): Unterstützt Entwickler, ihre Produktivität zu steigern, indem es eine Standard-API zum Parsen, Generieren und zum Transformieren von Java-Class-Files bereitstellt.
JEP 458: Launch Multi-File Source-Code Programs: Ermöglicht es Entwicklern zu entscheiden, ob und wann ein Build-Tool konfiguriert werden soll, indem der Java Application Launcher so erweitert wird, dass er ein Programm ausführen kann, das durch mehrere Dateien mit Java-Quellcode bereitgestellt wird.
JEP 461: Stream Gatherers (Preview): Hilft Entwicklern, ihre Produktivität zu steigern, indem die Stream API erweitert wird, um benutzerdefinierte Intermediate-Operationen zu unterstützen. Dadurch können Stream-Pipelines Daten transformieren, die mit den vorhandenen Intermediate-Operationen nicht einfach zu erreichen sind. Durch flexiblere und aussagekräftigere Stream-Pipelines und benutzerdefinierte Intermediate-Operationen zur Bearbeitung von Streams unendlicher Größe, ermöglicht dieses Merkmal den Entwicklern eine höhere Effizienz beim Lesen, Schreiben und Warten von Java-Code.
Performance-Updates
JEP 423: Region Pinning for G1: Trägt zur Reduzierung der Latenz bei und ermöglicht die Durchführung einer Garbage Collection während nativer Bibliotheksaufrufe, die ansonsten eine Pause des Garbage Collectors erfordern würden. Dies wird erreicht, indem während eines Aufrufs einer nativen Bibliothek verfolgt wird, welche Objekte blockiert werden müssen, und nur die Regionen „gepinnt“ werden, die diese Objekte enthalten. Auf diese Weise kann die Garbage Collection in den nicht gepinnten Regionen normal fortgesetzt werden, insbesondere während eines ansonsten blockierenden nativen Bibliotheksaufrufs.
Die Veröffentlichung von Java 22 ist das Ergebnis der kontinuierlichen Zusammenarbeit zwischen Oracle und anderen Mitgliedern der weltweiten Java-Entwickler-Community vom OpenJDK und dem Java Community Process (JCP). Neben Verbesserungen und neuen Merkmalen wird Java 22 vom Java Management Service unterstützt – einem Oracle Cloud Infrastructure-(OCI-)Service. Dieser Service bietet Unternehmen eine einheitliche Konsole und ein zentrales Dashboard, mit denen die Java-Laufzeiten und -Anwendungen On-Premises oder in jeder Cloud administriert werden können.
Unterstützung des globalen Java-Ökosystems mit Innovation in der Cloud
Java bietet mehr Leistung, Effizienz, Innovation und Kosteneinsparungen, wenn es in der Cloud auf OCI bereitgestellt wird, einem der ersten Hyperscale-Cloud-Systeme, das Java 22 unterstützt. Durch die kostenlose Bereitstellung von Oracle Java SE, Oracle GraalVM und dem Java SE Subscription Enterprise Performance Pack auf OCI ermöglicht Java 22 Entwicklern die Erstellung und Bereitstellung von Anwendungen, die schneller, besser und mit einem optimierten Kosten-Nutzen-Verhältnis laufen.
Die Oracle Java Universal SE Subscription ist ein Pay-as-you-go-Angebot, das Kunden professionellen Support bietet. Es umfasst Triage-Support für das gesamte Java-Portfolio, die Nutzung von Oracle GraalVM, das Java SE Subscription Enterprise Performance Pack sowie Zugang zu Java Management Services und die Flexibilität, erforderliche Upgrades im Unternehmenstempo durchzuführen. Auf diese Weise können IT-Organisationen die Komplexität beherrschen, Kosten begrenzen und Sicherheitsrisiken verringern.
JavaOne Rückkehr im Jahr 2025
Die JavaOne, die weltweite Entwicklerkonferenz der Java-Community, kehrt 2025 in die San Francisco Bay Area zurück. Die JavaOne 2025 findet vom 17. bis 20. März 2025 in Redwood Shores, Kalifornien, statt und bietet den Teilnehmern die Möglichkeit, mehr über die Java-Technologie zu erfahren.
Weitere Informationen zu Java und seinem globalen Ökosystem finden Sie unter:
Dev.java: Das offizielle Portal zum Erlernen von Java
Inside.java: News und Ansichten von den Mitgliedern des Java-Teams bei Oracle
Java YouTube: Der offizielle Java-YouTube-Kanal für Java-Lernvideos
Oracle offers integrated suites of applications plus secure, autonomous infrastructure in the Oracle Cloud. For more information about Oracle (NYSE: ORCL), please visit us at oracle.com.
Trademarks
Oracle, Java, MySQL and NetSuite are registered trademarks of Oracle Corporation. NetSuite was the first cloud company--ushering in the new era of cloud computing.