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
AnwendungsentwicklerKursvoraussetzungen
Gute Kenntnisse in Java, etwa aus den Kursen Java für Fortgeschrittene oder Java für C++-ProgrammiererSeminarinhalte
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 SchnittstelleAutoCloseable
-@SafeVarargsund@SuppressWarnings({"unchecked", "varargs"})
Allgemeine Bibliotheksänderungen in Java 7
- Unicode 6
- Neue Methoden in den Wrapper-Klassen
- Änderungen imProcessBuilder
- JDBC 4.1
Neues im Threading und Datenstrukturen
- Fork & Join, ForkJoinPool
-Phaser(Weiterentwicklung vonCountDownLatchundCyclicBarrier)
-ConcurrentLinkedDequeundLinkedTransferQueue
NIO.2
- Dateisysteme unter NIO.2
- FileSystem und Path
-Path-Objekte erzeugen mit den KlassenPathsoderFileSystem
- Die Utility-KlasseFiles
- Datenströme erzeugen mit der KlasseFiles
- 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)
-SeekableByteChannelals Nachfolger vonRandomAccessFile
-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.