Neues in Java 11
Java 10 wurde im März 2018 final und der Nachfolger ist Java 11 (auch Java 18.9). Das Release war am 25. September 2018, Nachfolger ist Java 12.
Wie bei Java 10 bildet das OpenJDK die Referenzimplementierung, auf dessen Basis das Oracle JDK stehen wird. Oracle stellt OpenJDK Build bereit. Nach Änderungen im Lizensierungsmodell ist das Oracle JDK nur noch kostenfrei für die Entwicklung und Tests von Java-Anwendungen, aber nicht mehr für Produktivsysteme.
JEPs (JDK Enhancements)
Realisierte JEPs (JDK Enhancements) sind:
- JEP 181: Nest-Based Access Control
- JEP 309: Dynamic Class-File Constants
- JEP 315: Improve Aarch64 Intrinsics
- JEP 318: Epsilon: An Arbitrarily Low-Overhead Garbage Collector
- JEP 320: Remove the Java EE and CORBA Modules
- JEP 321: HTTP Client (Standard)
- JEP 323: Local-Variable Syntax for Lambda Parameters
- JEP 324: Key Agreement with Curve25519 and Curve448
- JEP 327: Unicode 10
- JEP 328: Flight Recorder
- JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
- JEP 330: Launch Single-File Source-Code Programs
- JEP 331: Low-Overhead Heap Profiling
- JEP 332: Transport Layer Security (TLS) 1.3
- JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
- JEP 335: Deprecate the Nashorn JavaScript Engine
- JEP 336: Deprecate the Pack200 Tools and API
Wichtige Änderungen
Entfernte Module
Diverse @Deprecated-Dinge wurden in Java 11 entfernt. Darunter fallen auch die großen Module:
java.activationjava.corbajava.se.ee(Aggregator)java.transactionjava.xml.bindjava.xml.wsjava.xml.ws.annotation
JavaFX Entfernung
JavaFX wird ebenfalls aus Java 11 entfernt. Die Entwicklung findet im OpenJFX statt.
Wichtige Features im Detail
HTTP Client (JEP 321)
Der neue standardisierte HTTP Client ersetzt die bisherigen HTTP-Implementierungen und bietet moderne Funktionen wie HTTP/2-Unterstützung.
Local-Variable Syntax für Lambda (JEP 323)
Ermöglicht die Verwendung von var in Lambda-Parametern für bessere Lesbarkeit.
ZGC - Experimenteller Garbage Collector (JEP 333)
Ein neuer, skalierbarer Garbage Collector mit niedriger Latenz für große Heap-Größen.
Single-File Source Programs (JEP 330)
Java-Programme können direkt ausgeführt werden, ohne vorherige Kompilierung in eine .class-Datei.
Nest-Based Access Control (JEP 181)
Verbesserte Zugriffskontrolle für verschachtelte Klassen, die die JVM-Unterstützung für Nested Classes optimiert.
Weiterführende Dokumentation
- Javadoc-Differenzen von Java 11 zur Vorgängerversion Java 10
- Java SE 11 (18.9) (JSR 383) Final Release Specification
- Mailingliste jdk-all-changes dokumentiert alle Änderungen an den JDK-Repositories
Java 11 ist ein wichtiger Meilenstein als LTS-Version und bringt viele praktische Verbesserungen für die tägliche Entwicklung.