Java 9 - Die Neuerungen - Syntax- und API-Erweiterungen und Modularisierung im Überblick

Java 9 - Die Neuerungen - Syntax- und API-Erweiterungen und Modularisierung im Überblick

 

 

 

von: Michael Inden

dpunkt, 2018

ISBN: 9783960883784

Sprache: Deutsch

376 Seiten, Download: 9347 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop
Typ: A (einfacher Zugriff)

 

eBook anfordern

Mehr zum Inhalt

Java 9 - Die Neuerungen - Syntax- und API-Erweiterungen und Modularisierung im Überblick



  Inhaltsverzeichnis 5  
  1 Einleitung 19  
  I Sprach- und API-Erweiterungen 0  
     2 Syntaxerweiterungen 23  
        2.1 Anonyme innere Klassen und der Diamond Operator 23  
        2.2 Nutzung von »effectively final«-Variablen im ARM 24  
        2.3 Neuerung bei der @SafeVarargs-Annotation 26  
        2.4 Erweiterung der @Deprecated-Annotation 29  
        2.5 Private Methoden in Interfaces 30  
        2.6 Verbotener Bezeichner '_' 32  
     3 Neues und Änderungen im JDK 33  
        3.1 Neue APIs 33  
           3.1.1 Das neue Process-API 33  
           3.1.2 Collection-Factory-Methoden 39  
           3.1.3 Reactive Streams und die Klasse Flow 45  
           3.1.4 Taskbar-Support 55  
           3.1.5 Verarbeitung von Stackframes und die Klasse StackWalker 58  
           3.1.6 HTTP/2-Support 60  
        3.2 Erweiterte APIs 65  
           3.2.1 Erweiterungen in der Klasse InputStream 66  
           3.2.2 Erweiterungen rund um die Klasse Optional 68  
           3.2.3 Erweiterungen im Stream-API 73  
           3.2.4 Erweiterungen in der Klasse LocalDate 77  
           3.2.5 Support von UTF-8 in ResourceBundles 78  
           3.2.6 Erweiterungen in der Klasse Arrays 83  
           3.2.7 Erweiterungen in der Klasse Objects 85  
           3.2.8 Erweiterungen in der Klasse CompletableFuture 85  
           3.2.9 Erweiterungen in Class 89  
           3.2.10 Die Klasse MethodHandle 91  
           3.2.11 Die Klasse VarHandle 94  
        3.3 Sonstige Änderungen 95  
           3.3.1 Optimierung bei Strings 96  
           3.3.2 Erweiterungen im Unicode-Support 97  
           3.3.3 HiDPI-Support 99  
           3.3.4 Multi-Resolution Images 99  
           3.3.5 Unterstützung von TIFF-Grafiken 102  
           3.3.6 Support für Spin-Wait-Loops 103  
           3.3.7 Deprecation diverser Typen und Methoden im JDK 104  
     4 Änderungen in der JVM 109  
        4.1 Performance-Verbesserungen 109  
        4.2 HTML5 Javadoc 110  
        4.3 Änderung des Versionsschemas 111  
        4.4 Browser-Plugin ist deprecated 112  
        4.5 Garbage Collection 113  
        4.6 Unterstützung von Multi-Release-JARs 114  
        4.7 Java + REPL => jshell 117  
     5 Übungen zu den Neuerungen in JDK 9 125  
  II Modularisierung 0  
     6 Modularisierung mit Project Jigsaw 139  
        6.1 Grundlagen 140  
           6.1.1 Bisherige Varianten der Modularisierung 141  
           6.1.2 Warum wir Modularisierung brauchen 143  
        6.2 Modularisierung im Überblick 144  
           6.2.1 Grundlagen zu Project Jigsaw 144  
           6.2.2 Einführendes Beispiel 152  
           6.2.3 Komplexeres Beispiel 155  
           6.2.4 Packaging 164  
           6.2.5 Linking 165  
           6.2.6 Abhängigkeiten und Modulgraphen 169  
           6.2.7 Module des JDKs einbinden 171  
           6.2.8 Arten von Modulen 178  
        6.3 Sichtbarkeiten und Zugriffsschutz 179  
           6.3.1 Sichtbarkeiten 179  
           6.3.2 Zugriffsschutz an Beispielen 181  
           6.3.3 Transitive Abhängigkeiten (Implied Readability) 186  
        6.4 Zusammenfassung 191  
     7 Weiterführende Themen zur Modularisierung 193  
        7.1 Modularisierung und Services 194  
           7.1.1 Begrifflichkeiten: API, SPI und Service Provider 194  
           7.1.2 Service-Ansatz in Java seit JDK 6 195  
           7.1.3 Services im Bereich der Modularisierung 198  
           7.1.4 Definition eines Service Interface 199  
           7.1.5 Realisierung eines Service Provider 200  
           7.1.6 Realisierung eines Service Consumer 202  
           7.1.7 Kontrolle der Abhängigkeiten 204  
           7.1.8 Fazit 205  
        7.2 Modularisierung und Reflection 206  
           7.2.1 Verarbeitung von Modulen mit Reflection 206  
           7.2.2 Tool zur Ermittlung von Modulen zu Klassen 208  
           7.2.3 Konvertierungstool für import zu requires 210  
           7.2.4 Besonderheiten bei Reflection 213  
        7.3 Kompatibilität und Migration 219  
           7.3.1 Kompatibilitätsmodus 219  
           7.3.2 Migrationsszenarien 222  
           7.3.3 Fallstrick bei der Bottom-up-Migration 226  
           7.3.4 Beispiel: Migration mit Automatic Modules 227  
           7.3.5 Beispiel: Automatic und Unnamed Module 229  
           7.3.6 Abwandlung mit zwei Automatic Modules 232  
           7.3.7 Mögliche Schwierigkeiten bei Migrationen 234  
           7.3.8 Fazit 234  
     8 Übungen zur Modularisierung 235  
  III Verschiedenes 0  
     9 Build-Tools und IDEs 247  
        9.1 Nicht modularisierte Applikationen 247  
           9.1.1 Gradle 249  
           9.1.2 Maven 251  
           9.1.3 Eclipse 253  
           9.1.4 IntelliJ IDEA 253  
           9.1.5 NetBeans 253  
        9.2 Nicht modularisierte Applikationen mit HTTP/2-API 254  
           9.2.1 Gradle 254  
           9.2.2 Maven 256  
           9.2.3 Eclipse 258  
           9.2.4 IntelliJ IDEA 259  
           9.2.5 NetBeans 261  
        9.3 Modularisierte Applikationen 262  
           9.3.1 Gradle 263  
           9.3.2 Maven 268  
           9.3.3 Eclipse 273  
           9.3.4 IntelliJ IDEA 275  
           9.3.5 NetBeans 279  
        9.4 Besonderheiten beim Unit-Testen 282  
           9.4.1 Gradle 283  
           9.4.2 Maven 284  
           9.4.3 Eclipse 285  
           9.4.4 IntelliJ IDEA 286  
           9.4.5 NetBeans 286  
           9.4.6 Kommandozeile 286  
        9.5 Kompatibilitätsmodus 293  
           9.5.1 Gradle 294  
           9.5.2 Maven 295  
           9.5.3 Eclipse 296  
           9.5.4 IntelliJ IDEA 296  
           9.5.5 NetBeans 296  
           9.5.6 Kommandozeile 296  
        9.6 Fazit 297  
     10 Zusammenfassung 299  
  IV Anhang 0  
     A Schnelleinstieg in Java 8 305  
        A.1 Einstieg in Lambdas 305  
           A.1.1 Lambdas am Beispiel 305  
           A.1.2 Functional Interfaces und SAM-Typen 306  
           A.1.3 Type Inference und Kurzformen der Syntax 309  
           A.1.4 Methodenreferenzen 310  
        A.2 Streams im Überblick 311  
           A.2.1 Streams erzeugen – Create Operations 312  
           A.2.2 Intermediate und Terminal Operations im Überblick 314  
           A.2.3 Zustandslose Intermediate Operations 316  
           A.2.4 Zustandsbehaftete Intermediate Operations 319  
           A.2.5 Terminal Operations 321  
        A.3 Neuerungen in der Datumsverarbeitung 325  
           A.3.1 Neue Aufzählungen, Klassen und Interfaces 326  
           A.3.2 Die Klasse Instant 328  
           A.3.3 Die Klasse Duration 329  
           A.3.4 Die Klassen LocalDate, LocalTime und LocalDateTime 330  
           A.3.5 Die Klasse Period 331  
           A.3.6 Datumsarithmetik mit TemporalAdjusters 333  
        A.4 Diverse Erweiterungen 335  
           A.4.1 Erweiterungen im Interface Comparator 335  
           A.4.2 Die Klasse Optional 337  
           A.4.3 Die Klasse CompletableFuture 343  
     B Einführung Gradle 347  
        B.1 Projektstruktur für Maven und Gradle 347  
        B.2 Builds mit Gradle 349  
     C Einführung Maven 359  
        C.1 Maven im Überblick 359  
        C.2 Maven am Beispiel 362  
     Literaturverzeichnis 365  
     Index 365  
  www.dpunkt.de 0  

Kategorien

Service

Info/Kontakt

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek