Austin – Oracle hat heute die Verfügbarkeit von Java 23 bekannt gegeben, der neuesten Version der weltweit führenden Programmiersprache und Entwicklungsplattform. Java 23 (Oracle JDK 23) bietet eine Vielzahl von Verbesserungen, die Entwicklern helfen, ihre Produktivität zu steigern und Innovationen voranzutreiben. Die Plattform verfügt nun über noch mehr Leistung, Stabilität und Sicherheit, was Unternehmen hilft, ihr Wachstum zu beschleunigen.
„Java entwickelt sich ständig weiter, um die immer vielfältigeren Anforderungen von Unternehmen an die Entwicklung moderner Anwendungen zu unterstützen“, sagt Arnal Dayaratna, Research Vice President, Software Development, IDC. „Die neue Version ermöglicht es Entwicklern, ihr Toolset zu erweitern und ihre Produktivität zu steigern. So können sie Anwendungen erstellen und bereitstellen, die die Leistung neuster Technologien wie KI nutzen. Durch die Bereitstellung innovativer neuer Funktionen alle sechs Monate unterstützt Java Entwicklungsteams weiterhin dabei, einen erheblichen Mehrwert für ihre Unternehmen zu liefern.“
Zusätzlich zu den neuen Verbesserungen und Funktionen für Entwickler bietet Java 23 einen erheblichen Mehrwert für deren Unternehmen. So wird Java 23 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 bietet zudem mehr Optionen für Fein-Tuning und Verbesserung der maximalen Leistung durch das Hinzufügen des Graal-Compilers, eines dynamischen, in Java geschriebenen Just-in-Time-Compilers (JIT), der Bytecode in optimierten Maschinencode umwandelt.
„Die neuen Funktionen in Java 23 helfen Entwicklern aller Fachrichtungen, ihre Produktivität zu steigern und die Erstellung leistungsfähiger, sicherer und skalierbarer Anwendungen zu vereinheitlichen“, sagt Georges Saab, Senior Vice President, Oracle Java Platform und Vorsitzender des OpenJDK-Verwaltungsrats. „Mit einer Vielzahl neuer Funktionen und Tools, die Entwicklern helfen, Anwendungen schneller und effizienter zu entwickeln und bereitzustellen, unterstützt Java 23 Entwicklungsteams und deren Unternehmen dabei, Innovationen zu fördern und das Unternehmenswachstum zu steigern.“
Java 23 bietet Verbesserungen und Erweiterungen für die Java- Programmiersprache, die Laufzeitumgebung, die Bibliotheken und die im Java Development Kit (JDK) enthaltenen Tools. 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össere 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össere 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össe 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 Funktionen in Java 23 sind das Ergebnis einer kontinuierlichen, engen Zusammenarbeit zwischen Oracle und anderen Mitgliedern der weltweiten Java-Entwickler-Community über OpenJDK und den Java Community Process (JCP). Weitere Details zu den Funktionen in Java 23 finden Sie im technischen Blogbeitrag zu Java 23.
Unterstützung der globalen Java-Community durch Innovation in der Cloud
Java bietet mehr Leistung, Effizienz, Kosteneinsparungen und Innovation, wenn es auf OCI eingesetzt wird, einer der ersten Hyperscale-Clouds, die Java 23 unterstützen. Durch die kostenlose Bereitstellung von Oracle Java SE, Oracle GraalVM und dem Java SE Subscription Enterprise Performance Pack auf OCI unterstützt Java 23 Entwickler bei der Erstellung und Bereitstellung von Anwendungen, die schneller, besser und mit optimierter Kosten-Performance laufen.
Die Oracle Java Universal SE Subscription ist ein Pay-as-you-go-Angebot, das Kunden einen erstklassigen Support bietet. Es umfasst 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. Dies hilft IT-Organisationen, die Komplexität zu bewältigen, Sicherheitsrisiken zu minimieren und Kosten zu senken.
JavaOne kehrt 2025 zurück
Das Flaggschiff der weltweiten Java-Community, JavaOne, 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, sich über die neuesten Java-Entwicklungen zu informieren und mit den Java-Experten von Oracle und anderen Industrieexperten zu sprechen. Lesen Sie mehr über den Blogbeitrag auf Inside Java hier, und wenn Sie daran interessiert sind, für die JavaOne 2025 einen Vortrag einzureichen, finden Sie den Call for Papers hier.
Ergänzende Zitate
„Agile Entwicklung hilft dabei, sich über Feedback-Schleifen an den Kundenbedürfnissen zu orientieren, und Java bietet die Agilität, die Entwickler brauchen“, sagt Venkat Subramanian, Präsident von Agile Developer, Inc. „Unter den vielen wertvollen Funktionen in Java 23 bin ich besonders von der Weiterentwicklung der Stream Gatherer beeindruckt. Diese Funktion ist unglaublich nützlich, um benutzerdefinierte Schritte in einer funktionalen Code-Entwicklungspipeline zu erstellen, so dass man spezifische Geschäftsanforderungen auf effektive Weise erfüllen kann.“
„Ich habe mein Java-Einführungsbuch mit Hilfe der Vorschaufunktionen von Java 23 für implizit deklarierte Klassen überarbeitet, und als Autor und Dozent erleichtern mir diese Funktionen die Arbeit sehr“, sagt Barry Burd, Professor an der Drew University. „Ein Grossteil des ausführlichen Codes früherer Ausgaben ist weggefallen, was den Studenten hilft, sich auf die wesentliche Logik zu konzentrieren, anstatt sich durch Zeilen von Textbausteinen zu wühlen. Da die implizite Deklaration von Klassen und Instanz-Hauptmethoden es mir ausserdem ermöglicht, die Code-Beispiele im Buch zu straffen, gibt es jetzt mehr Platz, um andere interessante Java-Konzepte einzubeziehen. Ich freue mich darauf, meinen Studenten das Programmieren mit Java 23 beizubringen.“
„Bei JetBrains sind wir bestrebt, Entwicklern dabei zu helfen, neue Java-Features in IntelliJ IDEA zu nutzen und zu übernehmen, noch bevor sie für die Produktion freigegeben werden, und das gilt auch für die Unterstützung der IDE für Java 23“, sagt Mala Gupta, Java Developer Advocate, JetBrains. „IntelliJ IDEA 2024.2 macht es Entwicklern leicht, die innovativen neuen Features in Java 23 zu nutzen, wie z. B. primitive Typen in Patterns, implizit deklarierte Klassen, flexible Konstruktor-Bodies, Markdown-Dokumentationskommentare und andere.“
Um mehr über Java und sein globales Ökosystem zu erfahren, besuchen Sie bitte unsere Website:
Dev.java: Das offizielle Portal zum Erlernen von Java
Inside.java: Neuigkeiten und Hintergründe von den Mitgliedern des Java-Teams bei Oracle
Java YouTube: Der offizielle Java YouTube-Kanal für Java-Lernvideos
(Oracle/mc/ps)