20 Jahre Erfahrung FreeCall 0800 tutegos

Java 8 Neuigkeiten und aktuelles aus dem OpenJDK 8

Nach dem Entwickler auf Java 7 bis Mitte 2011 warten mussten, dauerte es fast 3 weitere Jahre, bis Java 8 am 18. März 2014 freigegeben wurde. Wie beim Java 7 bildet das OpenJDK die Referenzimplementierung, auf dessen Basis das Oracle JDK steht. Die größte Neuerung auf der Sprachseite von Java 8 sind Lambda-Ausdrücke und die damit folgenden Anpassungen an der Collection-API; neue Java-Pakete gibt es kaum. JavaFX ist wie bei den späten Java 7-Versionen mit an Bord.

Der Nachfolger von Java 8 ist Java 9.

An folgende Quellen sind die Änderungen an Java 8 über die letzten Jahre gut abzulesen:

Sprachänderungen

Die Sprachänderungen von Java 8 betreffen Lambda-Ausdrücke, Default-Methoden und statische Schnittstellenmethoden. Default-Methoden sind Default-Implementierungen von Methoden in Schnittstellen (früher "Defender-Methoden" genannt).

Lambda-Ausdrücke (Closures) wurden für Java 7 lange diskutiert, doch die Zeit reichte nicht, sie vollständig zu spezifizieren und zu testen. Daher wird es DAS Sprachfeature für Java 8. Die Diskussionen gehen lange zurück und viele Prototypen wurden entwickelt. Neal Gafter beschreibt das ausführlich.

Bibliotheksänderungen

Da Lambda-Ausdrücke die funktionale Programmierung vereinfacht, wurde insbesondere im util-Paket neue Sub-Pakete wie java.util.function eingeführt. Eine weitere API-Neuheit ist die Stream-API, für die im Pakt java.util.stream neue Typen eingeführt und vorhandene Typen erweitert wurden.

Ein Aspekt betrifft die sogenannte Lambdafication, also Anpassungen der Java API. Das zeigt sich etwa bei den Datenstrukturen und in Kleinigkeiten bei I/O.

Neu hinzugekommen ist die Time & Date API, die stark inspiriert wurde von Joda-Time. Die Referenzimplementierung ist ThreeTen, abgeleitet davon ist auch ein Backport für Java 7.

Sonst gibt es verhältnismäßig wenig API-Änderungen, etwa bei String, dass sie auch zusammengefügt werden können.

Die späten Versionen von Java 7 integrieren schon JavaFX, in Java 8 wird JavaFX 8 beigefügt, neu ist dabei etwa die 3D-Unterstützung.

Das Modulsystem Jigsaw ist verschoben worden und wird Teil von Java 9.

Java 8 IDEs

Dokumentation

Die kommende Version der Java-Insel wird die meisten der Features intensiv behandeln. Vorgeschmack auf das Buch liefert wie üblich der Java-Insel-Blog.

Weitere Dokumentationen über Themen, die die Insel nicht detailliert abdeckt:

Alle neuen Typen und Eigenschaften