Neuerungen in Java 5/6/7 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen Java 7 Java Klassenbibliothek wird Open Source Referenzen 14.02.2017 Stefan Bühler für InfoPoint 2 Java 5 – neue Sprachfeatures Generics Autoboxing / Unboxing Enhanced „for“ Loop VarArgs Enums Static import Metadata (Annotations) 14.02.2017 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 14.02.2017 Stefan Bühler für InfoPoint 4 Generics II Legacy Code 14.02.2017 Stefan Bühler für InfoPoint 5 Generics III Typsichere Collections 14.02.2017 Stefan Bühler für InfoPoint 6 Generics IV typsichere Collections (dekompiliert) 14.02.2017 Stefan Bühler für InfoPoint 7 Autoboxing / Unboxing I automatische Umwandlung zwischen elementaren Datentypen und ihren Wrapper-Objekten 14.02.2017 Stefan Bühler für InfoPoint 8 Autoboxing / Unboxing II Legacy Code 14.02.2017 Stefan Bühler für InfoPoint 9 Autoboxing / Unboxing III Vereinfachung 1 14.02.2017 Stefan Bühler für InfoPoint 10 Autoboxing / Unboxing IV Vereinfachung 2 14.02.2017 Stefan Bühler für InfoPoint 11 Autoboxing / Unboxing IV Vereinfachung 2 (dekompiliert) 14.02.2017 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 14.02.2017 Stefan Bühler für InfoPoint 13 Enhanced „for“ Loop II 14.02.2017 Stefan Bühler für InfoPoint 14 Enhanced „for“ Loop III dekompiliert 14.02.2017 Stefan Bühler für InfoPoint 15 VarArgs I variable Anzahl Argumente in Methoden / Konstruktoren immer letztes Argument der Methode immer vom selben Typ 14.02.2017 Stefan Bühler für InfoPoint 16 VarArgs II 14.02.2017 Stefan Bühler für InfoPoint 17 VarArgs III (dekompiliert) 14.02.2017 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) 14.02.2017 Stefan Bühler für InfoPoint 19 Enums II 14.02.2017 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 14.02.2017 Stefan Bühler für InfoPoint 21 Static import II 14.02.2017 Stefan Bühler für InfoPoint 22 Annotations I Anbringen von Zusatzinformationen, die zur Compile- und/oder Laufzeit zur Verfügung stehen erlaubt das Weglassen von handgeschriebenem ‚boilerplate‘ Code, der stattdessen generiert wird als Applikationsentwickler häufiger „verwenden“ als „definieren“ Annotations vorgegeben durch JDK / Klassenbibliotheken (z. B. JUnit4) 14.02.2017 Stefan Bühler für InfoPoint 23 Annotations II 14.02.2017 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 Input / Output 14.02.2017 Stefan Bühler für InfoPoint 25 Ocean Metal Look and Feel 14.02.2017 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 interoperabler Webservice per Annotation System Tray Unterstützung Splash Screen Unterstützung 14.02.2017 Stefan Bühler für InfoPoint 27 JDBC 4.0 14.02.2017 Stefan Bühler für InfoPoint 28 Scripting Schnittstelle 14.02.2017 Stefan Bühler für InfoPoint 29 .NET interoperabler Webservice per Annotation I 14.02.2017 Stefan Bühler für InfoPoint 30 .NET interoperabler Webservice per Annotation II 14.02.2017 Stefan Bühler für InfoPoint 31 Java 7 – Java wird Open Source Freigabe aller wesentlichen JDKQuelltexte der SE bis Mitte 2007 (GPLv2, Classpath exception) bereits verfügbar: javac, HotSpot VM, JavaHelp Marke Java und Logo bleiben geschützt 14.02.2017 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 14.02.2017 Stefan Bühler für InfoPoint 33