© marinat197/Shutterstock.com
Java geht mit Version 11 in die nächste Runde

Startschuss für neue Features


Nachdem Java 10, das erste „normale“ Release nach dem neuen Releasezyklus, pünktlich veröffentlicht wurde, ist nun auch die erste Version mit Langzeitunterstützung verfügbar: Java 11. In diesem Artikel werden die wichtigsten Neuerungen der aktuellen Java-Version vorgestellt.

Durch den neuen halbjährlichen Releasezyklus seit Java 9 (September 2017) kann der interessierte Java-Entwickler gar nicht mehr so schnell schauen, wie bereits die nächste Major-Version der am weitesten verbreiteten Programmiersprache [1] veröffentlicht wurde.

Gerade ist mit Java 11 [2] das erste Long-Term-Support-(LTS-)Release seit Java 8 fertig geworden. Wir wollen einen Blick auf die Neuerungen der Sprache und die Änderungen im API werfen. Da der normale Support (kostenlose Updates) für das Oracle JDK 8 bereits im Januar 2019 auslaufen wird, stellt sich für viele nun auch die Frage, ob man in naher Zukunft von Java 8 auf 11 wechseln sollte. Dabei ist Java 8 erst jetzt so richtig im Mainstream angekommen. Die gerade einmal vier Jahre alten Features rund um Lambdas und Streams werden mittlerweile von einer breiten Masse an Entwicklern verwendet. Und nun sollen wir uns bereits mit den nächsten Versionen beschäftigen und auf die aktuelle LTS-Version umsteigen? (Kasten: „Wann machen Sie das Update auf Java 11?“)

Wann machen Sie das Update auf Java 11? [3]

  • Mehr als vier Monate nach dem Java-11-Release (33 %, 134 Stimmen)

  • Ich lasse das Java-11-Update aus (23 %, 95 Stimmen)

  • Ich aktualisiere wenige Tage nach dem Java-11-Release (15 %, 60 Stimmen)

  • Ein bis vier Monate nach dem Java-11-Release (15 %, 60 Stimmen)

  • Eine bis vier Wochen nach dem Java-11-Release (9 %, 38 Stimmen)

  • Ich arbeite bereits produktiv mit Java 11 (5 %, 22 Stimmen)

Genau das scheint Oracle zu beabsichtigen. Allerdings scheuen laut diversen Studien bisher noch viele den Umstieg auf die Versionen nach Java 8. Gerade die großen Änderungen, die das Modulsystem von Java 9 (Project Jigsaw) mit sich brachte, bereiten Kopfzerbrechen, und die dafür notwendige Migration wird vielerorts aufgeschoben. Selbst Josh Bloch, Schöpfer des Java Collection Frameworks, rät im Moment von der Verwendung des Modulsystems ab: „It is too early to say whether modules will achieve widespread use outside of the JDK itself. In the meantime, it seems best to avoid them unless you have a compelling need“ [4].

Natürlich lassen sich Java 9, 10 und 11 auch ohne das Modulsystem beziehungsweise mit minimalinvasivem Eingriff in die bestehenden Anwendungen verwenden. Nichtsdestotrotz ist der Respekt groß. Immerhin springen auch die meisten Hersteller von Bibliotheken und Frameworks bisher nur sehr zögerlich auf die Neuerungen auf.

Die letzten Wochen und Monate waren zudem stark geprägt von den Debatten zu Oracles neuer Support- und Lizenzpolitik. Daneben stand die Frage im Raum, ob Java oder das JDK überhaupt kostenlos bleiben [5]. Um es gleich vorweg zu nehmen: Wir werden Java und das JDK auch in Zukunft weiterhin frei nutzen können und zudem auch für einen ausreichenden Zeitraum kostenlose Updates und Security-Patches erhalten.

Java 11: Was ist neu?

Die Neuerungen von Java 11 fallen relativ übersichtlich aus. Das verwundert aber durch den kurzen Zeitraum seit der Veröffentlichung der vorangegangenen Version nicht weiter. Insgesamt wurden siebzehn Java Enhancement Proposals (JEPs) (Kasten: „Diese JEPs landeten im Release“) umgesetzt.

Diese JEPs landeten im Release:

  • 181: Nest-Based Access Control

  • 309: Dynamic Class-File Constants

  • 315: Improve Aarch64 Intrinsics

  • 318: Epsilon: A No-Op Garbage Collector

  • 320: Remove the Java EE and CORBA Modules

  • 321: HTTP Client (Standard)

  • 323: Local-Variable Syntax for Lambda Parameters

  • 324: Key Agreement with Curve25519 and Curve448

  • 327: Unicode 10

  • 328: Flight Recorder

  • 329: ChaCha20 and Poly1305 Cryptographic Algorithms

  • 330: Launch Single-File Source-Code Programs

  • 331: Low-Overhead Heap Profiling

  • 332: Transport Layer Security (TLS) 1.3

  • 333: ZGC: A Scalable Low-Latency Garbage Collector

  • 335: Deprecate the Nashorn JavaScript Engine

  • 336: Deprecate ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang