- Classpath und Modulepath
- Neue Argumente für javac und javac
- Named Application Modules: Selbstbeschreibende, benannte Kollektion von Code und Daten
- Die module-info
- Explizite Exports und Dependencies: exports / requires / requires transitive
- Öffnung für Deep Reflection: opens
- Aggregat-Module
- Unterstützung des ServiceLoaders: provides / uses
- Automatic Modules
- Das namenlose Modul
- Mixing classpath / modulepath - modulare jars / nicht modulare jars
- Die Optionen addModules, addExports, addOpens
- Modulares JDK (Verbergen interner APIs)
Erweiterung des Reflection-API:
- Class.newInstance deprecated
- Die Klassen Module, ModuleDescriptor und ModuleLayer
Werkzeuge:
- jshell (Interaktive Ausführung von Java-Expressions und -Statements)
- jlink (Erstellung von Runtime-Images)
- jdeps (Analyse von Abhängigkeiten)
Neue Sprachelemente
- Verbesserter Resource-Try
- Diamond-Operator für anonyme Klassen
- Private Interface-Methoden
- Verbot des Unterstrichs als Bezeichner
Standardbibliothek
- Statische Factory-Methoden für Lists, Sets und Maps: of-Methoden
- Erweiterung des Stream-APIs: takeWhile, dropWhile
- Erweiterung des Optional-Konzepts
- Kompakte Strings
- Minimales Logging-API
- Erzeugung verkürzter Stack-Traces
- Erweiterung des concurrent-Pakets
- Erweiterung des Process-APIs
- Das Cleaner-Konzept
Das Flow-Framework:
- Das Konzept der Reaktiven Programmierung
- Die Interfaces Publisher, Subsriber, Subscription, Processor
- Die Klasse SubmissionPublisher
- Beispiel-Anwendungen
Neuerungen von Java 10:
- Local Variable Type Inference: das Kontext-Schlüsselwort var
- Collections, Collectors, Optional: Erweiterungen
- Runtime.Version
Neuerungen von Java 11:
- Ausführen von Single-File Sourcecode
- Benutzung von var in Lambda-Parametern
- String, Files, Optional, Predicate: Erweiterungen
- Die Klasse HttpClient
- WebSockets mit dem HttpClient
MethodeVortrag, Diskussion, Übungen, Praktikum am System.