© Andrey_Kuzmin/Shutterstock.com, Illustrationen: Sun Microsystems Inc., S&S Media
Java Magazin
Java 13 ist da

Alle halben Jahre wieder

Wie schnell so ein Jahr vergangen ist, sieht man auch daran, dass Java schon wieder um zwei Versionsnummern gewachsen ist. Mittlerweile sollten wir Java-Entwickler uns ja an die kurzen Releasezyklen gewöhnt haben. Immerhin können wir jetzt regelmäßig neue Funktionen ausprobieren und werden nicht alle paar Jahre von einem riesigen Funktionsumfang neuer Features erschlagen. In diesem Artikel werfen wir einen Blick auf das im September 2019 erscheinende Java 13.

Falk Sippach


In das JDK 13 haben es die folgenden Java Enhancement Proposals geschafft [1]:

JEP 350: Dynamic CDS Archives JEP 351: ZGC: Uncommit Unused Memory JEP 353: Reimplement the Legacy Socket API JEP 354: Switch Expressions (Preview) JEP 355: Text Blocks (Preview)

Auf den ersten Blick sieht es nicht nach viel aus. Tatsächlich kann man durch die Kürze der Zeit seit der Veröffentlichung von Java 12 aber auch nicht allzu viele Änderungen erwarten. Vielmehr sind die Releases zwischen den Long-Term-Support-(LTS-)Versionen meist dazu da, gewisse Features als Previews anzubieten, um frühzeitig Feedback von den Nutzern einzuholen. Die Funktionen werden dabei in den JEPs implementiert und – sobald sie eine gewisse Reife erreicht haben – mit dem nächsten Release des festgelegten halbjährlichen Zyklus ausgeliefert. Dadurch kann man nie genau vorhersagen, wie viele neue und vor allem für den normalen Java-Programmierer relevante Funktionen im nächsten Release enthalten sind. Das Ziel ist, die Preview-Features bis zur nächsten LTS-Version zu finalisieren, damit sie stabil genug ist und für die nächsten drei Jahre gut dasteht. Im September 2021 wird dann Java 17 das Erbe von Java 8 und 11 antreten.

Anpassungen an Switch Expressions

Wenn man die oben aufgeführte Featureliste durchschaut, sind aus Entwicklersicht hauptsächlich die beiden letzten Punkte interessant. So wurden beispielsweise die in Java 12 als Preview eingeführten Switch Expressions aufgrund des Userfeedbacks erweitert. Die Switch Expression ist eine Alternative zum umständlichen und fehlerträchtigen Switch Statement. Eine ausführliche Übersicht über die Verwendung findet sich in diversen Artikeln zu Java 12 [2].

Die größte Änderung in Java 13 ist das Ersetzen des Schlüsselworts break in der Switch Expression durch yield. Der Hintergrund ist die bessere Unterscheidbarkeit zwischen Switch-Statement (mit möglichem break) und den Expressions (mit yield). Mit der yield-Anweisung verlässt man den Switch und bekommt ähnlich wie bei einem return das Ergebnis des aktuellen Zweigs zurückgeliefert.

In Listing 1 folgt ein Codebeispiel. Oben sehen wir ein Statement mit break und Fall-Through. Im direkten Vergleich folgt eine Switch Expression mit dem neuen Schlüsselwort yield und Mehrfachlabeln. Im Gegensatz zur ersten Variante wird dort keine Variable verändert, sondern direkt das Ergebnis des case-Zweigs zurückgeliefert.

Listing 1// Switch-Statement mit breakprivate static String statementBreak(int switchArg){ String str = "n...

Java Magazin
Java 13 ist da

Alle halben Jahre wieder

Wie schnell so ein Jahr vergangen ist, sieht man auch daran, dass Java schon wieder um zwei Versionsnummern gewachsen ist. Mittlerweile sollten wir Java-Entwickler uns ja an die kurzen Releasezyklen gewöhnt haben. Immerhin können wir jetzt regelmäßig neue Funktionen ausprobieren und werden nicht alle paar Jahre von einem riesigen Funktionsumfang neuer Features erschlagen. In diesem Artikel werfen wir einen Blick auf das im September 2019 erscheinende Java 13.

Falk Sippach


In das JDK 13 haben es die folgenden Java Enhancement Proposals geschafft [1]:

JEP 350: Dynamic CDS Archives JEP 351: ZGC: Uncommit Unused Memory JEP 353: Reimplement the Legacy Socket API JEP 354: Switch Expressions (Preview) JEP 355: Text Blocks (Preview)

Auf den ersten Blick sieht es nicht nach viel aus. Tatsächlich kann man durch die Kürze der Zeit seit der Veröffentlichung von Java 12 aber auch nicht allzu viele Änderungen erwarten. Vielmehr sind die Releases zwischen den Long-Term-Support-(LTS-)Versionen meist dazu da, gewisse Features als Previews anzubieten, um frühzeitig Feedback von den Nutzern einzuholen. Die Funktionen werden dabei in den JEPs implementiert und – sobald sie eine gewisse Reife erreicht haben – mit dem nächsten Release des festgelegten halbjährlichen Zyklus ausgeliefert. Dadurch kann man nie genau vorhersagen, wie viele neue und vor allem für den normalen Java-Programmierer relevante Funktionen im nächsten Release enthalten sind. Das Ziel ist, die Preview-Features bis zur nächsten LTS-Version zu finalisieren, damit sie stabil genug ist und für die nächsten drei Jahre gut dasteht. Im September 2021 wird dann Java 17 das Erbe von Java 8 und 11 antreten.

Anpassungen an Switch Expressions

Wenn man die oben aufgeführte Featureliste durchschaut, sind aus Entwicklersicht hauptsächlich die beiden letzten Punkte interessant. So wurden beispielsweise die in Java 12 als Preview eingeführten Switch Expressions aufgrund des Userfeedbacks erweitert. Die Switch Expression ist eine Alternative zum umständlichen und fehlerträchtigen Switch Statement. Eine ausführliche Übersicht über die Verwendung findet sich in diversen Artikeln zu Java 12 [2].

Die größte Änderung in Java 13 ist das Ersetzen des Schlüsselworts break in der Switch Expression durch yield. Der Hintergrund ist die bessere Unterscheidbarkeit zwischen Switch-Statement (mit möglichem break) und den Expressions (mit yield). Mit der yield-Anweisung verlässt man den Switch und bekommt ähnlich wie bei einem return das Ergebnis des aktuellen Zweigs zurückgeliefert.

In Listing 1 folgt ein Codebeispiel. Oben sehen wir ein Statement mit break und Fall-Through. Im direkten Vergleich folgt eine Switch Expression mit dem neuen Schlüsselwort yield und Mehrfachlabeln. Im Gegensatz zur ersten Variante wird dort keine Variable verändert, sondern direkt das Ergebnis des case-Zweigs zurückgeliefert.

Listing 1// Switch-Statement mit breakprivate static String statementBreak(int switchArg){ String str = "n...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang