33
Neuerungen in Java 5/6/7

Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Embed Size (px)

Citation preview

Page 1: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Neuerungen in Java 5/6/7

Page 2: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 211.04.23

Überblick

Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek

Java 6 Erweiterungen Klassenbibliothek

Java 7 Java wird Open Source

Referenzen

Page 3: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 311.04.23

Java 5 – neue Sprachfeatures

Generics Autoboxing / Unboxing Enhanced „for“ Loop VarArgs Enums Static import Metadata (Annotations)

Page 4: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 411.04.23

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

Page 5: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 511.04.23

Generics IILegacy Code

Page 6: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 611.04.23

Generics IIITypsichere Collections

Page 7: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 711.04.23

Generics IVtypsichere Collections (dekompiliert)

Page 8: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 811.04.23

Autoboxing / Unboxing I

automatische Umwandlung zwischen elementaren Datentypen und ihren Wrapper-Objekten

Page 9: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 911.04.23

Autoboxing / Unboxing IILegacy Code

Page 10: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1011.04.23

Autoboxing / Unboxing IIIVereinfachung 1

Page 11: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1111.04.23

Autoboxing / Unboxing IV Vereinfachung 2

Page 12: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1211.04.23

Autoboxing / Unboxing IV Vereinfachung 2 (dekompiliert)

Page 13: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1311.04.23

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

Page 14: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1411.04.23

Enhanced „for“ Loop II

Page 15: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1511.04.23

Enhanced „for“ Loop IIIdekompiliert

Page 16: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1611.04.23

VarArgs I

variable Anzahl Argumente in Methoden / Konstruktoren

immer letztes Argument der Methode immer vom selben Typ

Page 17: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1711.04.23

VarArgs II

Page 18: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1811.04.23

VarArgs III (dekompiliert)

Page 19: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 1911.04.23

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)

Page 20: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2011.04.23

Enums II

Page 21: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2111.04.23

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

Page 22: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2211.04.23

Static import II

Page 23: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2311.04.23

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)

Page 24: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2411.04.23

Annotations II

Page 25: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2511.04.23

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

Page 26: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2611.04.23

Ocean Metal Look and Feel

Page 27: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2711.04.23

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

Page 28: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2811.04.23

JDBC 4.0

Page 29: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 2911.04.23

Scripting Schnittstelle

Page 30: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 3011.04.23

.NET interoperabler Webservice per Annotation I

Page 31: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 3111.04.23

.NET interoperabler Webservice per Annotation II

Page 32: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 3211.04.23

Java 7 – Java wird Open Source

Freigabe aller wesentlichen JDK-Quelltexte der SE bis Mitte 2007 (GPLv2, Classpath exception)

bereits verfügbar: javac, HotSpot VM, JavaHelp

Marke Java und Logo bleiben geschützt

Page 33: Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint 2 19.05.2014 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen

Stefan Bühler für InfoPoint 3311.04.23

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