Neuerungen in Java 5/6/7 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen Java 7 Java Klassenbibliothek wird Open Source Referenzen 07.12.2006 Stefan Bühler für InfoPoint 2 Java 5 – neue Sprachfeatures Generics Autoboxing / Unboxing Enhanced „for“ „for Loop VarArgs Enums E Static import Metadata (Annotations) 07.12.2006 Stefan Bühler für InfoPoint 3 Java 5 – Generics I generische Datentypen ähnlich wie Templates in C++ Typsicherheit zur Compilezeit Unterstützung durch Collections Framework; Legacy Code führt zu Compiler Warnungen Compiler-Warnungen 07.12.2006 Stefan Bühler für InfoPoint 4 Generics II Legacy g y Code 07.12.2006 Stefan Bühler für InfoPoint 5 Generics III Typsichere yp Collections 07.12.2006 Stefan Bühler für InfoPoint 6 Generics IV typsichere Collections (dekompiliert) 07.12.2006 Stefan Bühler für InfoPoint 7 Autoboxing / Unboxing I automatische Umwandlung zwischen elementaren Datentypen und ihren pp j Wrapper-Objekten 07.12.2006 Stefan Bühler für InfoPoint 8 Autoboxing / Unboxing II Legacy g y Code 07.12.2006 Stefan Bühler für InfoPoint 9 Autoboxing / Unboxing III Vereinfachung g1 07.12.2006 Stefan Bühler für InfoPoint 10 Autoboxing / Unboxing IV Vereinfachung g2 07.12.2006 Stefan Bühler für InfoPoint 11 Autoboxing / Unboxing IV Vereinfachung g 2 ((dekompiliert) p ) 07.12.2006 Stefan Bühler für InfoPoint 12 Enhanced „for“ Loop I „für jedes Element vom Typ <T> in Menge <M>“ auf eigenen Typen verfügbar durch Implementierung des Interface java lang Iterable java.lang.Iterable 07.12.2006 Stefan Bühler für InfoPoint 13 Enhanced „for“ Loop II 07.12.2006 Stefan Bühler für InfoPoint 14 Enhanced „for for“ Loop III dekompiliert p 07.12.2006 Stefan Bühler für InfoPoint 15 VarArgs I variable Anzahl Argumente in Methoden / Konstruktoren immer letztes Argument der Methode immer vom selben Typ 07.12.2006 Stefan Bühler für InfoPoint 16 VarArgs II 07.12.2006 Stefan Bühler für InfoPoint 17 VarArgs III (dekompiliert) 07.12.2006 Stefan Bühler für InfoPoint 18 Enums I Aufzählungstypen Aufzählungen sind als Klassen, ihre Werte als Objekte realisiert können in switch-Statements verwendet werden Implementieren Comparable und Serializable Unterstützung durch Collections-Framework (EnumSet EnumMap) (EnumSet, 07.12.2006 Stefan Bühler für InfoPoint 19 Enums II 07.12.2006 Stefan Bühler für InfoPoint 20 Static import I erlaubt unqualifizierten Zugriff auf statische Member ohne vom Typ zu erben, der die statischen Member hält individuell einzelnen Member oder alle statischen Member eines Typs 07.12.2006 Stefan Bühler für InfoPoint 21 Static import II 07.12.2006 Stefan Bühler für InfoPoint 22 Annotations I Anbringen von Zusatzinformationen, die zur Compile und/oder Laufzeit zur Verfügung Compilestehen erlaubt das Weglassen von handgeschriebenem ‚boilerplate‘ Code, der stattdessen generiert wird als Applikationsentwickler häufiger „verwenden verwenden“ als „definieren“ Annotations vorgegeben durch JDK / Klassenbibliotheken (z. B. JUnit4) 07.12.2006 Stefan Bühler für InfoPoint 23 Annotations II 07.12.2006 Stefan Bühler für InfoPoint 24 Java 5 – Erweiterungen Klassenbibliothek neues Look and Feel 'Ocean‘ Java Management Extensions (JMX) Anpassung und Erweiterung des Collection Framework (u. a. Queue, Generics) Concurrency Framework Formatted F tt d Input I t / Output O t t 07.12.2006 Stefan Bühler für InfoPoint 25 Ocean Metal Look and Feel 07.12.2006 Stefan Bühler für InfoPoint 26 Java 6 – Erweiterungen Klassenbibliothek JDBC 4.0 Anpassung und Erweiterung des Collection Framework (u. a. Deque) Scripting Schnittstelle .NET NET interoperabler Webservice per Annotation System Tray Unterstützung S l h Screen Splash S Unterstützung U t tüt 07.12.2006 Stefan Bühler für InfoPoint 27 JDBC 4.0 07.12.2006 Stefan Bühler für InfoPoint 28 Scripting Schnittstelle 07.12.2006 Stefan Bühler für InfoPoint 29 .NET interoperabler Webservice per Annotation I 07.12.2006 Stefan Bühler für InfoPoint 30 .NET interoperabler Webservice per Annotation II 07.12.2006 Stefan Bühler für InfoPoint 31 Java 7 – Java wird Open Source Freigabe aller wesentlichen JDKQuelltexte der SE bis Mitte 2007 (GPLv2, p exception) p ) Classpath bereits verfügbar: javac, HotSpot VM, JavaHelp Marke Java und Logo bleiben geschützt 07.12.2006 Stefan Bühler für InfoPoint 32 Referenzen Java 5 Docs http://java.sun.com/j2se/1.5/ Java 6 RC Docs http://java.sun.com/javase/6 Free and Open Source Java FAQ http://www.sun.com/software/opensource/java/faq.jsp 07.12.2006 Stefan Bühler für InfoPoint 33