O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Java 8 – Die Neuerungen, 2nd Edition

Book Description

  • Aktueller Überblick über die Neuerungen bei Java 8- Neu in der Auflage: Übungsaufgaben

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort zur zweiten Auflage
  5. Vorwort
  6. 1 Einleitung
  7. 2 Lambda-Ausdrücke
    1. 2.1 Einstieg in Lambdas
      1. 2.1.1 Lambdas am Beispiel
      2. 2.1.2 Functional Interfaces und SAM-Typen
      3. 2.1.3 Type Inference und Kurzformen der Syntax
      4. 2.1.4 Lambdas als Parameter und als Rückgabewerte
      5. 2.1.5 Unterschiede: Lambdas vs. anonyme innere Klassen
    2. 2.2 Defaultmethoden
      1. 2.2.1 Interface-Erweiterungen
      2. 2.2.2 Vorgabe von Standardverhalten
      3. 2.2.3 Erweiterte Möglichkeiten durch Defaultmethoden
      4. 2.2.4 Spezialfall: Was passiert bei Konflikten?
      5. 2.2.5 Vorteile und Gefahren von Defaultmethoden
    3. 2.3 Statische Methoden in Interfaces
    4. 2.4 Methodenreferenzen
    5. 2.5 Exceptions in Lambdas
    6. 2.6 Fazit
    7. 2.7 Übungen zu Lambdas, Methodenreferenzen und Defaultmethoden
  8. 3 Bulk Operations on Collections
    1. 3.1 Externe vs. interne Iteration
      1. 3.1.1 Externe Iteration
      2. 3.1.2 Interne Iteration
      3. 3.1.3 Externe vs. interne Iteration an einem Beispiel
    2. 3.2 Collections-Erweiterungen
      1. 3.2.1 Das Interface Predicate<T>
      2. 3.2.2 Die Methode Collection.removeIf()
      3. 3.2.3 Das Interface UnaryOperator<T>
      4. 3.2.4 Die Methode List.replaceAll()
    3. 3.3 Streams
      1. 3.3.1 Streams erzeugen — Create Operations
      2. 3.3.2 Intermediate und Terminal Operations im Überblick
      3. 3.3.3 Zustandslose Intermediate Operations
      4. 3.3.4 Zustandsbehaftete Intermediate Operations
      5. 3.3.5 Terminal Operations
      6. 3.3.6 Wissenswertes zur Parallelverarbeitung
    4. 3.4 Filter-Map-Reduce
      1. 3.4.1 Herkömmliche Realisierung
      2. 3.4.2 Filter-Map-Reduce mit JDK 8
    5. 3.5 Datenaufbereitung mit Kollektoren
      1. 3.5.1 Das Interface Collector und die Methode collect()
      2. 3.5.2 Vertiefung bereits vorgestellter Kollektoren
      3. 3.5.3 Aufbereitung statistischer Daten
      4. 3.5.4 Aufbereitung als Map – einfache Gruppierungen
      5. 3.5.5 Aufbereitung mit Gruppierung und Partitionierung
    6. 3.6 Fallstricke bei Lambdas und funktionaler Programmierung
      1. 3.6.1 Java-Fehlermeldungen werden zu komplex
      2. 3.6.2 Fallstrick: Imperative Lösung 1:1 funktional umsetzen
      3. 3.6.3 Fallstrick: Zustandsbehaftete Lambdas
    7. 3.7 Fazit
    8. 3.8 Übungen zu Collections und Bulk Operations
    9. 3.9 Übungen zu Streams und Filter-Map-Reduce
  9. 4 JSR-310: Date and Time API
    1. 4.1 Datumsverarbeitung vor JSR-310
    2. 4.2 Überblick über die neu eingeführten Typen
      1. 4.2.1 Neue Aufzählungen, Klassen und Interfaces
      2. 4.2.2 Die Aufzählungen DayOfWeek und Month
      3. 4.2.3 Die Klassen MonthDay, YearMonth und Year
      4. 4.2.4 Die Klasse Instant
      5. 4.2.5 Die Klasse Duration
      6. 4.2.6 Die Aufzählung ChronoUnit
      7. 4.2.7 Die Klassen LocalDate, LocalTime und LocalDateTime
      8. 4.2.8 Die Klasse Period
      9. 4.2.9 Die Klasse ZonedDateTime
      10. 4.2.10 Zeitzonen und die Klassen ZoneId und ZoneOffset
      11. 4.2.11 Die Klasse Clock
      12. 4.2.12 Formatierung und Parsing – die Klasse DateTimeFormatter
    3. 4.3 Datumsarithmetik
    4. 4.4 Das neue Date and Time API im Einsatz
      1. 4.4.1 Beispiel: Berechnung einer Zeitdifferenz
      2. 4.4.2 Simulationen und die Klasse SpecialClock
      3. 4.4.3 Selbst definierte TemporalAdjusters
      4. 4.4.4 Interoperabilität mit Legacy-Code
    5. 4.5 Fazit
    6. 4.6 Übungen zum Date and Time API
  10. 5 Einstieg JavaFX 8
    1. 5.1 Einführung – JavaFX im Überblick
      1. 5.1.1 Motivation für JavaFX und Historisches
      2. 5.1.2 Grundsätzliche Konzepte
      3. 5.1.3 Layoutmanagement
    2. 5.2 Deklarativer Aufbau des GUIs
      1. 5.2.1 Deklarative Beschreibung von GUIs
      2. 5.2.2 Hello-World-Beispiel mit FXML
      3. 5.2.3 Diskussion: Design und Funktionalität strikt trennen
    3. 5.3 Rich-Client Experience
      1. 5.3.1 Gestaltung mit CSS
      2. 5.3.2 Effekte
      3. 5.3.3 Animationen
    4. 5.4 Properties, Data Binding und Observable Collections
      1. 5.4.1 Properties
      2. 5.4.2 Bindings
      3. 5.4.3 Observable Collections
      4. 5.4.4 Dynamisches Filtern von ObservableList
    5. 5.5 Neuerungen in JavaFX 8
      1. 5.5.1 Unterstützung von Lambdas als EventHandler
      2. 5.5.2 Neue Controls
      3. 5.5.3 Filter- und sortierbare Listen
      4. 5.5.4 Texteffekte
      5. 5.5.5 JavaFX 3D
    6. 5.6 Neuerungen in JavaFX 8 Update 40
      1. 5.6.1 Dialoge
      2. 5.6.2 Neuerungen in Bedienelementen
    7. 5.7 Fazit
    8. 5.8 Übungen zu JavaFX 8
  11. 6 Weitere &#196;nderungen in JDK 8
    1. 6.1 Erweiterungen im Interface Comparator<T>
    2. 6.2 Die Klasse Optional<T>
      1. 6.2.1 Grundlagen zur Klasse Optional<T>
      2. 6.2.2 Weiterführendes Beispiel und Diskussion
    3. 6.3 Parallele Operationen auf Arrays
    4. 6.4 Erweiterungen im Interface Map<K,V>
    5. 6.5 Erweiterungen im Bereich Concurrency
    6. 6.6 »Nashorn« – die neue JavaScript-Engine
    7. 6.7 Keine Permanent Generation mehr
    8. 6.8 Base64-Codierungen
    9. 6.9 Erweiterungen im Bereich Reflection
    10. 6.10 Erweiterungen im NIO und der Klasse Files
    11. 6.11 Änderungen bei Annotations
    12. 6.12 Berechnungen mit Überlaufprüfung
    13. 6.13 Übungen zu Diverses
  12. 7 Java 8 im Praxiseinsatz
    1. 7.1 Erste Schritte zur Informationsaufbereitung
    2. 7.2 Grafische Darstellung
    3. 7.3 Fazit
  13. 8 Tipps zur Migration von Java 7 auf Java 8
    1. 8.1 Stolpersteine in den Bibliotheken
      1. 8.1.1 Verarbeitung mit HashMaps
      2. 8.1.2 Unterschiede beim Einsatz von SimpleDateFormat
      3. 8.1.3 Rundung beim NumberFormat
      4. 8.1.4 Änderungen in der JavaScript-Engine
    2. 8.2 Externe in interne Iterationen überführen
    3. 8.3 Von Swing zu JavaFX
      1. 8.3.1 JavaFX in Swing einbinden
      2. 8.3.2 Swing in JavaFX einbinden
  14. 9 Zusammenfassung und Ausblick
    1. 9.1 Zusammenfassung und Fazit
    2. 9.2 Ausblick auf JDK 9: Mit JDK 8 nicht umgesetzte Features
      1. 9.2.1 Integration von Collection-Zugriffen
      2. 9.2.2 Vergleiche von Enums mit Operatoren
    3. 9.3 Weiterführende Literatur
  15. A Java und funktionale Programmierung
    1. A.1 Programmierparadigmen im Überblick
    2. A.2 Funktionale Programmierung an Beispielen
  16. Literaturverzeichnis
  17. Index
  18. Fu&#223;noten