Alle meine JEPs

Diese Features erwarten Sie in Java 10

Melanie Feldmann

© Shutterstock / Martin Christopher Parker

Java 10 ist offiziell in die Rampdown-Phase eingetreten. Damit steht das Feature-Set für die nächste Java-Version fest und das Bugfixing beginnt. Zwölf JEPs haben es in Java 10 geschafft, mehr werden es nur bei besonderen Ausnahmen. Denn die Zeit drängt.

In der Rampdwon-Phase soll es nun auf der einen Seite darum gehen, Bugs zu fixen, die auch wirklich gefixt werden müssen. Auf der anderen Seite müssen auch die Bugs identifiziert werden, die man in der Kürze der Zeit nicht mehr fixen kann und mit denen man dann erstmal leben muss. Dieser Prozess war bereits bei Java 9 im Einsatz und steht hier genauer beschrieben. Die einzige Änderung in der Rampdown-Phase ist der Umgang mit weiteren Enhancements, die jetzt noch zu Java 10 hinzukommen sollen. Bevor diese in die Liste der Features für Java 10 aufgenommen werden können, brauchen sie eine offizielle Zustimmung vom JDK Project Lead oder einem Delegierten. Mark Reinhold (Oracle) begründet dies damit, dass es in der kürze der Zeit nicht möglich sei, ein JEP zu reparieren, das auf Abwege geraten ist. Der genaue Prozess ist hier beschrieben. Dabei handelt es sich noch um einen Vorschlag, der bis zum 22. Dezember zur Diskussion steht. Die JDK-Entwickler wollen aber bereits vor dem offiziellen Segen mit der Umsetzung der strengeren Richtlinie beginnen. Ebenfalls mit Hinweis auf die knappe Zeit.

Fest eingeplant für Java 10 sind die folgenden zwölf JEPs.

JEP 286: Local-Variable Type Inference

JEP 286 wird es Entwicklern ermöglichen, ihren Java-Code kompakter zu formulieren, ohne dabei die Typensicherheit aufzugeben. Entwicklern können dann die oft unnötige Manifest-Deklaration lokaler Variablentypen umgehen. Die Abkürzung beschränkt sich aber auf lokale Variablen mit Initializers, Indizes in erweiterten for-Schleifen und Lokale, die in einer traditionellen for-Schleife deklariert sind. Sie ist nicht verfügbar für Method Formals, Constructor Formals, Methodenrückgabetypen, Felder, Catch Formals oder jede andere Art von Variablendeklaration.

JEP 296: Consolidate the JDK Forest into a Single Repository

In diesem JEP geht es darum, die zahlreichen Repositories des JDK in ein einziges Repository zu überführen, um die Entwicklung zu vereinfachen und zu rationalisieren. Bisher besteht das JDK 9 aus acht Repos: root, corba, hotspot, jaxp, jaxws, jdk, langtools und nashorn. Die FX Sourcen sind nicht Teil des Proposals.

JEP 304: Garbage-Collector Interface

Der JEP 304 wird die Isolierung der verschiedenen Garbage Collectors (GC) verbessern, indem es ein sauberes Interface für die Garbage Collectors integriert. Das soll zu einer besseren Modularität für die HotSpot VM und internen GC-Code führen. Außerdem soll es einfacher werden einen neuen GC zu HotSpot hinzuzufügen, ohne den bestehenden Code zu stören. GCs aus einem JDK Build auszuschließen soll damit ebenfalls einfacher werden.

JEP 307: Parallel Full GC for G1

Ebenfalls um den Garbage Collector geht es im JEP 307. Das Proposal will die Latenz des in Java 9 zum Standard erklärten Garbage Collectors G1 verbessern, indem der ganze GC parallelisiert wird. Dies soll sich vor allem auf Use Case auswirken, bei denen die Latenz besonders leidet.

JEP 310: Application Class-Data Sharing

Um die Startzeit und den Footprint zu verbessern, wird das existierende Class-Data Sharing (CDS) Feature weiter ausgebaut. Das Feature erlaubt es Entwicklern, Applikations-Klassen in geteilten Archiven zu nutzen.

JEP 312: Thread-Local Handshakes

Das Proposal wird es ermöglichen, einen Callback auf Threads auszurufen, ohne dass ein globaler VM Safepoint durchgeführt wird. Damit lassen sich individuelle Threads einfach stoppen und nicht nur alle Threads auf einmal.

JEP 313: Remove the Native-Header Generation Tool (javah)

Mit diesem JEP wird das Tool javah aus dem JDK verschwinden. Denn das Tool wird nicht mehr gebraucht, da es mittlerweile besser Funktionen in javac gibt, die mit JDK 8 eingeführt wurden. jacac bietet die Möglichkeit, native Header-Dateien zum Zeitpunkt der Kompilierung des Java-Quellcodes zu schreiben, wodurch ein separates Tool überflüssig wird.

JEP 314: Additional Unicode Language-Tag Extensions

java.util.Locale und die zugehörigen APIs werden ausgebaut, um zusätzlichen Unicode Extensions der BCP 74 Sprach-Tags zu implementieren. Die Sprach-Tags kamen ursprünglich in Java 7 dazu, beschränken sich aber auf Kalender (ca) und Nummern (nu). Neu hinzukommen first day of week (fw), region override (rg) und time zone (tz).

JEP 316: Heap Allocation on Alternative Memory Devices

In JEP 316 geht es darum, der HotSpot VM zu ermöglichen, dass sie den Java Object Heap auf alternativen Speichern allokiert, die der Anwender spezifizieren kann. Ein Beispiel für einen sollen Speicher sind NV-DIMMs. Entwickler können dann wichtige Prozesse auf DRAM-Speicher laufen lassen, und große aber weniger wichtige auf dem günstigen NV-DIMM-Speicher, ohne ihren Applikationscode anpassen zu müssen.

JEP 317: Experimental Java-Based JIT Compiler

Als experimenteller Compiler kommt der Java-basierte JIT Compiler, Codename Graal, für Linux/x64. Graal ist die Grundlage für den ebenfalls experimentellen Ahead-of-Time (AOT) Compiler, der in JDK 9 eingeführt wurde. Der Compiler ist Teil des Projekts Metropolis.

JEP 319: Root Certificates

Das Ziel vom JEP 319 ist es, die Root-Zertifikate von Oracles Root-Certification-Authority-Programm für Java SE Open Source zur Verfügung zu stellen. Das soll OpenJDK Builds für Entwickler attraktiver machen. Außerdem soll es die Unterschiede zwischen den verschiedenen Builds verringern.

JEP 322: Time-Based Release Versioning

Und zu guter Letzt gehört auch das neue Versionierungsschema für die sechsmonatigen Java Releases zu Java 10. Wir haben uns diesen JEP hier genauer angesehen.

Und noch einmal zur Erinnerung der Zeitplan für Java 10:

  • 14.12.2017: Rampdown Phase One
  • 11.01.2018: All Tests Run
  • 18.01.2018: Rampdown Phase Two
  • 22.02.2018: Final Release Candidate
  • 20.03.2018: General Availability

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: