Austin – Oracle hat Java 18 vorgestellt, die neueste Version der Programmiersprache und Entwicklungsplattform. Java 18 (Oracle JDK 18) bringt eine Vielzahl von Performance-, Stabilitäts- und Sicherheitsverbesserungen mit, darunter neun Optimierungen der Plattform, die die Entwicklerproduktivität weiter verbessern.
Das neueste Java Development Kit (JDK) bietet Updates und Verbesserungen mit neun JDK Enhancement Proposals (JEPs). Dazu gehört unter anderem der Simple Web Server (JEP 408) für Prototyping und zum Testen sowie Code-Snippets in der Java-API-Dokumentation (JEP 413). Letzteres vereinfacht das Hinzufügen von Beispielquellcode in der API-Dokumentation. Entwickler können zwei JEP-Incubator-Module ausprobieren: Vector API (JEP 417) und Foreign Function and Memory API (JEP 419). Das Feature Pattern Matching for Switch (JEP 420) steht als Preview zur Verfügung.
„Die Veröffentlichung von Java 18 zeigt das dauerhafte Engagement von Oracle, Unternehmen und Entwicklern mit dem sechsmonatigen Release-Intervall einen schnelleren Zugriff auf Verbesserungen anzubieten“, erklärt Georges Saab, Vice President of Development, Java Platform Group, Oracle. „Wir tätigen weiterhin technische Investitionen, um die Performance, Stabilität und Sicherheit der Implementierungen der Java SE-Plattform sowie des Java Development Kit zu verbessern.“
„Java-Entwickler wünschen sich kontinuierliche Innovation mit modernen Programmiersprachen-Features, Verbesserungen der Entwicklungsumgebung, Cloud Managed Services und Stabilität“, fügt James Governor, Principal Analyst bei RedMonk hinzu. „Mit den konsistenten sechsmonatigen Release-Intervallen von Java erfüllt Oracle diese Anforderungen und trägt dazu bei, dass Java für moderne Anwendungen und Workloads relevant bleibt.“
Schnellere Java-Einführung in der Cloud
Oracle hat kürzlich den Java Management Service (JMS) eingeführt, ein neuer Cloud-Service innerhalb der Oracle Cloud Infrastructure (OCI), der das Management von Java-Laufzeitumgebungen und Anwendungen für On Premise- oder einer beliebigen Cloud-Umgebung unterstützt. JMS liefert die Informationen, die für das unternehmensweite Management von Java-Deployments erforderlich sind. Der Java Management Service ist Bestandteil von OCI für Cloud-Workloads und in der Java SE Subscription enthalten.
Java 18 ist die aktuelle Veröffentlichung im Rahmen des halbjährlichen Java Release-Intervalls. Es ist das Ergebnis einer umfangreichen Zusammenarbeit zwischen Entwicklern von Oracle und den Mitgliedern der globalen Java Entwickler-Community, ausgehend vom OpenJDK Project und dem Java Community Process (JCP). Diese Kooperation treibt stetige Innovationen voran und bietet zugleich eine kontinuierliche Verbesserung von Performance, Stabilität und Sicherheit, was die Verbreitung von Java in Unternehmen aller Grössen und Branchen erhöht.
Zu den massgeblichen Änderungen in Java 18 gehören:
Aktualisierungen und Verbesserungen der Bibliotheken
- JEP 400: UTF-8 by Default – Legt UTF-8 als Standardzeichensatz der Standard-Java-APIs fest. Mit dieser Änderung verhalten sich APIs, die vom Standardzeichensatz abhängen, über alle Implementierungen, Betriebssysteme, Sprach- und Landesinformationen sowie Konfigurationen hinweg konsistent.
- JEP 408: Simple Web Server – Ein Befehlszeilenwerkzeug mit API zum Starten eines vereinfachten Webservers, der nur statische Dateien bereitstellt. Das Werkzeug ist für Prototyping, Ad-hoc-Codierung und Testzwecke geeignet, insbesondere im Kontext von Bildung und Lehre.
- JEP 416: Reimplement Core Reflection with Method Handles – Reimplementiert java.lang.reflect.Method, Constructor und Field auf java.lang.invoke Method-Handles. Indem Method-Handles zum Basismechanismus für Reflection werden, lassen sich Wartungs- und Entwicklungskosten für java.lang.reflect- und java.lang.invoke-APIs reduzieren.
- JEP 418: Internet-Address Resolution SPI – Definiert ein Service Provider Interface (SPI) für die Hostnamen- und Adressauflösung, sodass java.net.InetAddress andere Resolver als den integrierten Plattform-Resolver verwenden kann.
Tools
JEP 413: JEP Code Snippets in Java API Documentation – Führt das @snippet-Tag für Standard-Doclet von JavaDoc ein, um die Aufnahme von Beispielquellcode in die API-Dokumentation zu vereinfachen.
Preview und Inkubator für künftige JDK-Releases
- JEP 417: Vector API (Third Incubator) – Stellt eine API für Entwickler bereit, um CPU-Architekturen zuverlässig zu nutzen, die skalierbare Vektorerweiterungen bieten. Dies führt zu einer deutlich verbesserten Performance im Vergleich zu äquivalenten Berechnungen auf nicht erweiterbaren Prozessoren.
- JEP 419: Foreign Function and Memory API (Second Incubator) – Ermöglicht Java-Programmen die Interaktion mit Code und Daten ausserhalb der Java-Laufzeitumgebung. Durch effizientes Aufrufen von Fremdfunktionen (Code ausserhalb der JVM) und durch sicheren Zugriff auf Fremd-Memory (Memory, der nicht von der JVM verwaltet wird) ermöglicht die API Java-Programmen, ohne die Komplexität und Fehleranfälligkeit vom Java Native Interface (JNI) native Bibliotheken aufzurufen und native Daten zu verarbeiten.
- JEP 420: Pattern Matching for Switch (Second Preview) – Verbessert die Java-Programmiersprache mit Pattern-Matching für Switch-Ausdrücke und Anweisungen sowie Spracherweiterungen mit Pattern. Durch die Pattern Matching-Erweiterung für Switch kann ein Ausdruck anhand einer Reihe von Pattern mit jeweils einer bestimmten Aktion getestet werden, sodass komplexe datenorientierte Abfragen präzise und sicher ausgeführt werden können.
Java-Programme für die Zukunft fit machen
JEP 421: Deprecate Finalization for Removal – Finalization bleibt vorerst standardmässig aktiviert, kann aber deaktiviert werden, um das Testen zu erleichtern. In einer künftigen Version wird Finalization standardmässig deaktiviert und in einem darauffolgenden Release wird sie dann entfernt. Anbieter von Bibliotheken und Anwendungen, die auf Finalization angewiesen sind, sollten eine Migration zu anderen Ressourcenverwaltungstechniken in Betracht ziehen, beispielsweise zur try-with-resources-Anweisung und Cleanern.
Support für Java-Anwender
Die Oracle Java SE Subscription, ein kalkulierbares Pay-as-you-go-Angebot, bietet Kunden professionellen Support, Anspruch auf GraalVM Enterprise, Zugriff auf den Java Management Service und die Flexibilität, Upgrades passend zu betrieblichen Veränderungen durchzuführen. Dies hilft IT-Organisationen, Komplexität zu beherrschen, Kosten einzudämmen und Sicherheitsrisiken zu mindern. (Oracle/mc)