Neuerungen in Java 7

Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten

Kursziele

Die Version Java 7 bringt einige neue Spracheigenschaften mit, die auf den ersten Blick klein wirken, auf den zweiten Blick aber den Programmcode kürzen und robuster machen. Das Update-Seminar versetzt Entwickler auf den aktuellen Stand mit den Syntax-Erweiterungen und den Bibliotheken. Das Seminar besteht aus drei Bausteinen: Im ersten Teil bekommen Teilnehmer einen genaueren Blick auf Generics, sodass Upper/Lower-Wildcards kein Geheimnis mehr sind. Im zweiten Teil folgen die Sprachänderungen von Java 7, wie der Diamond-Operator oder das try-mit-Ressoucen. Der abschließende Teil konzentriert sich auf die Bibliotheksänderungen von Java 7, wobei hier NIO.2 und Fork & Join besonders hervorgehen. Abschließend wird diskutiert, wie eine effektive Code-Migration nach Java 7 aussehen kann und welche Tools helfen, diesen Prozess zu automatisieren.

Zielgruppe

Anwendungsentwickler

Kursvoraussetzungen

Gute Kenntnisse in Java, etwa aus den Kursen Java für Fortgeschrittene oder Java für C++-Programmierer

Seminarinhalte

  • Generics<T>

    - Generische Typen deklarieren und nutzen
    - Diamonds und Typ-Inferenz
    - Umsetzen der Generics, Typlöschung und Raw-Types
    - Einschränken der Typen über Bounds
    - Typvariable <E extends Exception>
    - Generics und Vererbung, Invarianz
    - Konsequenzen der Typlöschung: Typ-Token, Arrays und Brückenmethoden
  • Sprachänderungen in Java 7

    - Zahlen im Binärsystem schreiben
    - Unterstriche bei Ganzzahlen
    - switch (String)
    - Zusammenfassen gleicher catch-Blöcke mit dem multi-catch
    - Präzisiertes rethrow
    - Automatisches Ressourcen-Management (try-mit-Ressourcen)
    - Die Schnittstelle AutoCloseable
    - @SafeVarargs und @SuppressWarnings({"unchecked", "varargs"})
  • Allgemeine Bibliotheksänderungen in Java 7

    - Unicode 6
    - Neue Methoden in den Wrapper-Klassen
    - Änderungen im ProcessBuilder
    - JDBC 4.1
  • Neues im Threading und Datenstrukturen

    - Fork & Join, ForkJoinPool
    - Phaser (Weiterentwicklung von CountDownLatch und CyclicBarrier)
    - ConcurrentLinkedDeque und LinkedTransferQueue
  • NIO.2

    - Dateisysteme unter NIO.2
    - FileSystem und Path
    - Path-Objekte erzeugen mit den Klassen Paths oder FileSystem
    - Die Utility-Klasse Files
    - Datenströme erzeugen mit der Klasse Files
    - Dateien kopieren und verschieben
    - Dateiattribute
    - Neue Dateien, Verzeichnisse, symbolische Verknüpfungen anlegen und löschen
    - MIME-Typen testen
    - Verzeichnislistings (DirectoryStream) und Filter
    - Rekursive Abläufe des Verzeichnisbaums (FileVisitor)
    - Dateisysteme und Dateisystemattribute
    - Verzeichnisse im Dateisystem überwachen (WatchService, WatchEvent, WatchKey)
    - FileSystems, FileSystem, FileStore (Übersicht und Information über das Dateisystem)
    - SeekableByteChannel als Nachfolger von RandomAccessFile
    - AsynchronousFileChannel, AsynchronousChannelGroup
    - AsynchronousSocketChannel, AsynchronousServerSocketChannel
  • JVM-Änderungen

    - invokedynamic
    - Garbage Collector G1
  • Ausblick

    - Einstieg in JavaFX (JavaFX 2.2 ist Bestandteil seit Java SE 7u6)
    - Verbreitung von Java 7 Bibliotheken
    - Java 7 Compiler und IDEs
    - Code-Migration und Tools
    - Ausblick auf Java 8: Lambdas und Weiteres

Eingesetzte Seminar-Software

Als Laufzeitumgebung wird standardmäßig Java SE 7 von Oracle zusammen mit der Entwicklungsumgebung Eclipse 4.2 bzw. Eclipse 3.7.2 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 7 oder andere Entwicklungsumgebungen (IntelliJ IDEA, Oracle JDeveloper).

Bemerkungen

Das Seminar konzentriert sich ausschließlich auf Java 7 und die Änderungen auf Java 5 und Java 6 beleuchtet das Seminar Neuerungen in Java 5 und Java 6.

Schlagwörter

5
142