Java SE 19-Veröffentlichung

Nach sechs Monaten Entwicklungszeit hat Oracle die Plattform Java SE 19 (Java Platform, Standard Edition 19) veröffentlicht, die das Open-Source-Projekt OpenJDK als Referenzimplementierung verwendet. Mit Ausnahme der Entfernung einiger veralteter Funktionen behält Java SE 19 die Abwärtskompatibilität mit früheren Versionen der Java-Plattform bei – die meisten zuvor geschriebenen Java-Projekte funktionieren weiterhin ohne Änderungen, wenn sie unter der neuen Version ausgeführt werden. Installierbare Builds von Java SE 19 (JDK, JRE und Server JRE) sind für Linux (x86_64, AArch64), Windows (x86_64) und macOS (x86_64, AArch64) vorbereitet. Die vom OpenJDK-Projekt entwickelte Java 19-Referenzimplementierung ist vollständig Open Source unter der GPLv2-Lizenz mit GNU ClassPath-Ausnahmen, um eine dynamische Verknüpfung mit kommerziellen Produkten zu ermöglichen.

Java SE 19 wird als reguläres Support-Release kategorisiert, wobei Updates vor dem nächsten Release veröffentlicht werden. Der Long Term Support (LTS)-Zweig soll Java SE 17 sein, das bis 2029 Updates erhält. Denken Sie daran, dass das Projekt ab der Veröffentlichung von Java 10 auf einen neuen Entwicklungsprozess umgestellt hat, was einen kürzeren Zyklus für die Erstellung neuer Releases impliziert. Neue Funktionalitäten werden nun in einem ständig aktualisierten Master-Branch entwickelt, der bereits durchgeführte Änderungen einbezieht und von dem aus alle sechs Monate Branchs verzweigt werden, um neue Releases zu stabilisieren.

Zu den neuen Funktionen in Java 19 gehören:

  • Es wurde eine vorläufige Unterstützung für Datensatzmuster vorgeschlagen, die die Mustervergleichsfunktion von Java 16 erweitert, um die Werte von Klassen vom Typ Datensatz zu analysieren. Zum Beispiel: record Point(int x, int y) {} void printSum(Object o) { if (o Instanz von Point(int x, int y)) { System.out.println(x+y); } }
  • Linux-Builds bieten Unterstützung für die RISC-V-Architektur.
  • Vorläufige Unterstützung für die FFM-API (Foreign Function & Memory) hinzugefügt, mit der Sie die Interaktion von Java-Programmen mit externem Code und Daten organisieren können, indem Sie Funktionen aus externen Bibliotheken aufrufen und auf Speicher außerhalb der JVM zugreifen.
  • Unterstützung für virtuelle Threads hinzugefügt, bei denen es sich um leichtgewichtige Threads handelt, die das Schreiben und Verwalten leistungsstarker Multithread-Anwendungen erheblich vereinfachen.
  • Es wird die vierte vorläufige Implementierung der Vector API vorgeschlagen, die Funktionen für Vektorberechnungen bereitstellt, die mithilfe der Vektoranweisungen der x86_64- und AArch64-Prozessoren ausgeführt werden und es Ihnen ermöglichen, Operationen gleichzeitig auf mehrere Werte gleichzeitig anzuwenden (SIMD). Im Gegensatz zu den im HotSpot JIT-Compiler bereitgestellten Funktionen zur Autovektorisierung skalarer Operationen ermöglicht die neue API die explizite Steuerung der Vektorisierung für die parallele Datenverarbeitung.
  • Eine dritte experimentelle Implementierung des Mustervergleichs in Schalterausdrücken wurde hinzugefügt, die die Verwendung flexibler Vorlagen für Fallbeschriftungen ermöglicht, die eine Reihe von Werten gleichzeitig abdecken, für die zuvor umständliche Ketten von if...else-Anweisungen verwendet wurden. Objekt o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); Standard -> o.toString(); };
  • Es wurde eine experimentelle API für strukturierte Parallelität hinzugefügt, die die Entwicklung von Multithread-Anwendungen erleichtert, indem mehrere Aufgaben, die in verschiedenen Threads ausgeführt werden, als eine Einheit behandelt werden.

Source: opennet.ru

Kommentar hinzufügen