JDK 11 nach dem Feature Freeze

Java 11 Features stehen fest: Diese Neuerungen erwarten uns

Hartmut Schlosser

© Shutterstock | Oleksandr Kostiuchenko

 

Am 25. September ist es soweit: Java 11 wird offiziell erscheinen. Ein wichtiger Meilenstein auf dem Weg dahin ist jetzt erreicht worden. Das JDK 11 ist in die sogenannte Rampdown Phase 1 eingetreten. Damit steht fest, welche Neuerungen uns in Java 11 erwarten.

Java 11 – Rampdown

Wie jedes Software-Projekt durchläuft auch Java 11 mehrere Entwicklungsstufen. Mit der nun erreichten Rampdown Phase 1 setzt der sogenannte Feature Freeze ein. Ab diesem Zeitpunkt werden keine JEPs (Java Enhancement Proposals) mehr angenommen, sondern lediglich an deren Implementierung bzw. Stabilisierung gearbeitet.

Wie Java-Plattform-Chefingenieur Mark Reinhold (Oracle) auf der JDK-Mailingliste bekannt gibt, wurde das Quellcode-Repository jdk/jdk bereits auf das Stabilisierungs-Repository jdk/jdk11 geforkt. Alle Pushes auf jdk/jdk oder jdk/client werden fortan dem JDK 12 zugewiesen.

Das Stabilisierungs-Repository steht für Bugfixes sowie ausgewählte Verbesserungen offen, wie in JEP 3: JDK Release Process beschrieben.

Auf welche Neuerungen in Java 11 können wir uns nun aber einstellen?

Neue Features in Java 11

17 Features haben es in Java 11 geschafft – sofern man gewillt ist, auch die Entferungen als solche zu bezeichnen. Dabei ergibt sich folgendes Bild:

JEP 181: Nest-Based Access Control

In Java 11 wird ein neuer Zugriffskontroll-Kontext namens nest eingeführt, der mit dem Begriff der „Nested Types“ in Java korreliert. Damit sind Klassen möglich, die logisch zur selben Code-Entität gehören, aber in Hinblick auf bestimmte Klassen-Dateien kompiliert werden. Dabei können die jeweiligen privaten Artefakte erreicht werden, ohne dass der Compiler Hilfsmethoden für derartige Zugriffe benötigt.

JEP 309: Dynamic Class-File Constants

Das Java Class-file-Format unterstützt in Java 11 die neue Form CONSTANT_Dynamic. Beim Laden einer CONSTANT_Dynamic wird die Erzeugung an eine Bootstrap-Methode delegiert, ähnlich wie das bereits bei einem invokedynamic-Aufruf passiert.

JEP 315: Improve Aarch64 Intrinsics

Hier geht es um die Verbesserung der existierenden String und Array Intrinsics für AArch64-Prozessoren sowie um neue CPU-Architektur-spezifische Code Pattern für die java.lang.Math-Funktionen sin, cos und log.

JEP 318: Epsilon: A No-Op Garbage Collector

Ein neuer Garbage Collector soll in Java 11 eingeführt werden, der zwar Speicherallokationen vornimmt, jedoch keinen Speicherfreigabe-Mechanismus implementiert. Sobald der verfügbare Java Heap aufgebraucht ist, wird die JVM heruntergefahren.

JEP 320: Remove the Java EE and CORBA Modules

Die Module Java EE und CORBA sollen aus der Java-SE-Plattform und dem JDK entfernt werden.

JEP 321: HTTP Client (Standard)

Standardisierung des in JDK 9 eingeführten und in JDK 10 aktualisierten HTTP Client API.

JEP 323: Local-Variable Syntax for Lambda Parameters

Für die Deklarierung der Parameter implizit typisierter Lambda-Ausdrücke steht in Java 11 das Codewort var zur Verfügung. Damit wird die Syntax einer implizit typisierten Lambda Expression der einer lokalen Variablen-Deklaration angepasst. Beispiel: (var x, var y) -> x.process(y)   // implicit typed lambda expression

JEP 324: Key Agreement with Curve25519 and Curve448

Implementierung der Krypotgraphie-Schemata Curve25519 und Curve448 aus RFC 7748. Dadurch soll u.a. der Austausch von Schlüsseln sicherer werden.

JEP 327: Unicode 10

Aktualisierung der existierenden Plattform-APIs auf Version 10.0 des Unicode Standards.

JEP 328: Flight Recorder

Das Flight-Recorder-Werkzeug sammelt Eventdaten von Anwendungen, der JVM und dem Betriebssystem, die beim Troubleshooting von Java-Anwendungen und der HotSpot JVM behilflich sein können.

JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms

Implementierung einer Stream-Verschlüsselung nach dem ChaCha20- und ChaCha20-Poly1305-Mechanismus aus RFC 7539. Dadurch soll die ältere und unsichere RC4 Stream-Chiffre ersetzt werden.

JEP 330: Launch Single-File Source-Code Programs

Erweiterung des java-Launchers um die Möglichkeit, Java-Programme bestehend aus einer einzigen Quellcode-Datei zu starten. Auch der Start innerhalb eines Skripts via sogenannter “shebang-Files” soll möglich sein.

JEP 331: Low-Overhead Heap Profiling

Bereitstellung eines Sampling-Mechanismus für Java-Heap-Allokationen, der via JVMTI zugänglich sein soll.

JEP 332: Transport Layer Security (TLS) 1.3

Implementierung der Version 1.3 des TLS-Protokolls  (Transport Layer Security).

JEP 333: ZGC: A Scalable Low-Latency Garbage Collector
(Experimental)

Einführung des neuen Z Garbage Collectors (ZGC), der geringe Latenzzeiten verspricht. GC-Pausen unterhalb von 10ms, hohe Skalierbarkeit bis zu mehreren Terabytes, weniger als 15% reduzierter Anwendungsdurchlauf im Vergleich zum G1-Garbage-Collector werden angestrebt. ZGC wird in JDK 11 als experimentelles Feature mit einem initialen Support für Liunux/x64-Plattform integriert sein.

JEP 335: Deprecate the Nashorn JavaScript Engine

Die JavaScript Engine Nashorn, die korrespondierenden APIs sowie das Werkzeug jjs werden als „deprecated“ markiert. Beabsichtigt ist die Entfernung aus dem JDK in einem folgenden Release.

JEP 336: Deprecate the Pack200 Tools and API

Die Tools pack200 und unpack200 sowie das API Pack200 in java.util.jar sollen als „deprecated“ markiert werden. Pack 200 ist ein Compressionsschema für JAR files, das in Java 5 eingeführt wurde und als nicht mehr zeitgemäß gilt.

Wie gehts weiter?

Wie die offizielle Java-11-Roadmap unten zeigt, ist das JDK 11 mit dem Erreichen der Rampdown-Phase 1 voll im Fahrplan. Als nächstes müssen in der „All Tests Run“-Phase alls Tests auf den unterstützten Plattformen im grünen Bereich sein. In der folgenden Rampsdown-Phase 2 geht es dann nur noch um Showstopper-Bugs, bevor am 16. August ein erster Release-Kandidat vorgelegt wird. Das finale Java 11 Release soll dann am 26. September für die Allgemeinheit freigegeben werden.

Java 11 Schedule

2018/06/28 Rampdown Phase One (fork from main line)
2018/07/19 All Tests Run
2018/07/26 Rampdown Phase Two
2018/08/16 Initial Release Candidate
2018/08/30 Final Release Candidate
2018/09/25 General Availability

 

 

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: