Original-URL des Artikels: https://www.golem.de/news/oracle-java-12-fuehrt-switch-expressions-und-micro-benchmarks-ein-1903-140145.html    Veröffentlicht: 20.03.2019 16:38    Kurz-URL: https://glm.io/140145

Oracle

Java 12 führt Switch Expressions und Micro-Benchmarks ein

Für Java 12 ist JDK 12 die quelloffene Referenzimplementierung. Die von Oracle unter der GPL angebotene Java-Version hat mehrere neue Features, darunter Switch Expressions und eine Micro-Benchmarking-Suite.

Bei Java 12 sind Switch Expressions laut der offiziellen Ankündigung noch ein Preview-Feature (JEP 325) und sollen das Pattern Matching (JEP 305) vereinfachen: Dabei geht es darum, die Switch-Anweisung wahlweise als Anweisung oder als Ausdruck einsetzen zu können. Zugleich sollen beide Varianten sowohl über traditionellen als auch vereinfachten Gültigkeitsbereich und Kontrollfluss-Verhalten verfügen.

Zum JDK-Quellcode gibt es nun eine Suite von Micro-Benchmarks (JEP 230). Die basieren auf dem Java-Microbenchmark Harness (JMH), sollen von Entwicklern einfach zu verwenden und um beim Continuous Performance Testing einsetzbar sein. Sie zielen auf komplette und stabile Features (nach dem Feature Complete Milestone), nicht aber auf neue Features. Sie sollen die Performance anhand der Differenzen zu vorherigen JDK-Releases verdeutlichen. Zugleich soll es einfach sein, die Benchmarks zu finden und auszuführen, neue zu ergänzen und Tests zu aktualisieren oder zu entfernen.

Müllabfuhr verkürzt Pausen

Auch ein neuer experimenteller Garbage-Collection-Algorithmus namens Shenandoah ist dabei, den das JEP 189 näher beschreibt. Demnach reduziert Shenandoah die Garbage-Collection-Pausen, indem er parallel zu den laufenden Java-Threads aufräumt. Die Pausenzeiten des Algorithmus sind dabei unabhängig davon, ob die Heap-Größe 200 MByte oder 200 GByte betragen. Es gibt andere GC-Algorithmen, Shenandoah zieht der Entwickler vor allem dann heran, wenn er vorhersagbar kurze Pausen und schnelle Reaktionszeiten anstrebt.

Mixed Collections für den Garbage-Collector-Algorithmus G1 (Garbage First) lassen sich abbrechen, wenn sie bestimmte Pausenzeiten überschreiten. Hat der G1-Algorithmus nichts zu tun, gibt er sofort Heap Memory frei.

ARM, Data Sharing und Konstanten

Zu den weiteren Neuerungen von Java 12 gehört, dass der Code für den ARM64-Port entfernt wird. Stattdessen wollen sich die Entwickler auf einen ARM-64-Zweig konzentrieren, den Aarch64-Port. Der JDK-Build-Prozess generiert ein Data-Sharing-Archiv für Klassen, indem er auf 64-Bit-Plattformen die Liste der Standardklassen heranzieht. Das soll die Startzeit reduzieren und die Angabe von Zusatzoptionen vermeiden. Nicht zuletzt bringt die Java Virtual Machine neuerdings ein API mit, um die aus dem Konstanten-Pool der Klassen zu ladenden Konstanten zu beschreiben. Herunterladen lässt sich Java 12 auf den Seiten von Oracle.  (kki)


Verwandte Artikel:
Programmiersprache: Java-Community wechselt nur langsam weg von Java 8   
(11.03.2019, https://glm.io/139902 )
Quarkus: Red Hat will Java für Kubernetes fit machen   
(08.03.2019, https://glm.io/139878 )
Programmiersprache: Java 11 erscheint mit neuem Supportmodell und TLS 1.3   
(26.09.2018, https://glm.io/136799 )
Google: Fuchsia bekommt Android-Runtime   
(03.01.2019, https://glm.io/138476 )
Oracle gegen Google: Supreme Court soll Streit um Java-APIs prüfen   
(25.01.2019, https://glm.io/138978 )

© 1997–2019 Golem.de, https://www.golem.de/