Successfully reported this slideshow.
Your SlideShare is downloading. ×

Was ist neu in Java 6, 7, 8, ...

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 42 Ad

More Related Content

Similar to Was ist neu in Java 6, 7, 8, ... (20)

Advertisement

More from Andreas Schreiber (20)

Recently uploaded (20)

Advertisement

Was ist neu in Java 6, 7, 8, ...

  1. 1. Was ist neu in Java 6, 7, 8, ... Arne Bachmann Simulations- und Softwaretechnik Deutsches Zentrum für Luft- und Raumfahrt KP SC-VK 07.10.2008
  2. 2. Historischer Überblick <ul><li>JDK 1.0 (1996-01-23) Highlights </li></ul><ul><li>JDK 1.1 (1998-02-19) Inner classes, JDBC, RMI </li></ul><ul><li>J2SE 1.2 Playground (1998-12-08) Collections, J2EE beta, JIT </li></ul><ul><li>J2SE 1.3 Kestrel (2000-05-08) Hotspot JVM, JNDI, JPDA </li></ul><ul><li>J2SE 1.4 Merlin (2002-02-06) assert , REs, Webstart, XML </li></ul><ul><li>J2SE 5.0 Tiger (2004-09-30) Annotations, enum, Generics </li></ul><ul><li>Java SE 6 Mustang (2006-12-11) JDBC4, Scripting, div. APIs </li></ul><ul><li>Java SE 6 Update 10 (2008) Better end user experience </li></ul><ul><li>Java SE 7 Dolphin (2009) Dyn. lang. support, multi-core </li></ul><ul><li>Java SE 8 … Closures? </li></ul>
  3. 3. Historischer Überblick <ul><li>Benennungsschema </li></ul><ul><ul><li>Alle Versionen ab JDK 1.2 hießen Java 2 </li></ul></ul><ul><ul><li>Rückwirkend mit Java 1.5.0 wurden 1.2 - 1.5 in J2SE x umbenannt </li></ul></ul><ul><ul><li>Ab Java SE 6 sollen keine Codenamen mehr genutzt werden </li></ul></ul><ul><li>Entwicklungsprozess </li></ul><ul><ul><li>1998: JCP (Java community process) und JSRs (215: JCP 2.6) </li></ul></ul><ul><ul><li>Mai 2006: Rich Green (Sun) spricht von Java als Open Source </li></ul></ul><ul><ul><li>13. November 2006: Sun veröffentlicht erste Quellen unter GPLv2 </li></ul></ul><ul><ul><li>8. Mai 2007: Alle Klassen-Bibliotheken veröffentlicht </li></ul></ul><ul><ul><li>2007: JRE 6 wird veröffentlicht (das JDK kam 2006) </li></ul></ul><ul><ul><li>Mai 2007: OpenJDK TM startet, wird JDK 7 mit binären „plugs“ sein </li></ul></ul>
  4. 4. Ältere interessante Features <ul><li>J2SE 1.2: Das strictfp keyword </li></ul>public strictfp class Example1 { float calculate(float x) { return x / 13.333f; } } // oder public class Example2 { strictfp float calculate(float x) { return x / 13.333f; } }
  5. 5. Ältere interessante Features <ul><li>J2SE 1.4: Das assert keyword für Pre-/Postconditions oder Invarianten </li></ul><ul><li>Start der JVM mit java -enableassertion TestClass (standardmäßig nicht aktiviert = Produktionsbetrieb) </li></ul><ul><li>class TestClass { </li></ul><ul><ul><li>void someStupidMethod(final String a) { </li></ul></ul><ul><ul><li>assert a != null; </li></ul></ul><ul><ul><li>assert a.length() == 1: &quot;nicht 1 Zeichen&quot;; </li></ul></ul><ul><ul><li>System.out.println(a); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>
  6. 6. Ältere interessante Features <ul><li>J2SE 5.0: static import um das Constant Interface Antipattern zu vermeiden: </li></ul><ul><li>Auto-(un)boxing </li></ul>// import static java.lang.Math.*; import static java.lang.Math.PI; double r = cos(PI * theta); int i = new Integer(2); // unboxing Float f = 3.5f; // boxing Vector<Long> vl = new Vector<Long>(); vl.add(0l);
  7. 7. Ältere interessante Features <ul><li>J2SE 5.0: Variable Argumentenzahl (= syntaktischer Zucker für Arrays) </li></ul>int min(int firstArg, int... remainingArgs) { int min = firstArg; for (int arg: remainingArgs) { if (arg < min) { min = arg; } } return min; } // Anwendung: x = min(2,1); y = min(2,1,3); z = min(2,1,4,0,7,4,5,5,5,8,2,4);
  8. 8. Java SE 6 <ul><li>java.lang.String.isEmpty </li></ul><ul><li>java.util.{NavigableMap, NavigableSet} java.util.concurrent.ConcurrentNavigableMap </li></ul><ul><ul><li>higherKey, higherEntry </li></ul></ul><ul><ul><li>pollFirstEntry </li></ul></ul><ul><ul><li>descendingKeySet </li></ul></ul>if( !randWord.isEmpty() ) { // no &quot;length&quot; check /*do something */ }
  9. 9. Java SE 6 <ul><li>JVM </li></ul><ul><ul><li>Neue class file version 50.0 (JSR 202) 0xCAFEBABE , schneller type checking verifier (zweigeteilt, inspiriert von Java ME) </li></ul></ul><ul><li>Neue Tools im JDK </li></ul><ul><ul><li>Java DB Derby (nur 2MB, default Standalone-DB) </li></ul></ul><ul><ul><li>Rhino 1.6r2 JavaScript engine direkt dabei </li></ul></ul><ul><li>Profiling und Problemsuche </li></ul><ul><ul><li>Monitoring + Management-Tools ohne Neustart der JVM nutzen </li></ul></ul><ul><ul><li>jconsole, jps, jmap, jstack, neu: jhat </li></ul></ul><ul><li>Performance von Java wächst stetig, für Desktop und Server </li></ul>
  10. 10. Java SE 6 Desktop Performanz Grafik: Danny Coward (2007)
  11. 11. Java SE 6 Server Performanz Grafik: Danny Coward (2007)
  12. 12. Java SE 6 APIs <ul><li>Java API for XML Web Services (JAX-WS, JSR 224) for Java EE </li></ul><ul><ul><li>Spec Lead (2003): Roberto Chinnici (Sun Microsystems, Inc.) </li></ul></ul><ul><ul><li>Maintenance Lead (heute): Jitendra Kotamraju (Sun) </li></ul></ul><ul><li>Erzeugen der WS-Klassen mit wsgen –cp . CircleFunction </li></ul>@WebService public class CircleFunction { public double getArea(final double r) { return java.lang.Math.PI * (r * r); } public static void main(String[] args) { Endpoint.publish( &quot;http://localhost:8080/&quot; + &quot;WS/function&quot;, new CircleFunction()); } }
  13. 13. Java SE 6 APIs <ul><li>Scripting for the Java Platform (JSR 223), ursprünglich für Java EE </li></ul><ul><ul><li>Spec Lead (2003-2006): Mike Grogan (Sun Microsystems, Inc.) </li></ul></ul><ul><ul><li>Mindestens 25 (java.net) + 10 (sonstige) Script-Engines, u. a. BeanShell, CajuScript, Jelly, Python, Sleep </li></ul></ul>ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine js = factory.getEngineByName(&quot; JavaScript &quot;); js.put(&quot;myVariable&quot;, 100); js.eval(&quot;print('Hello, World ' + String(myVariable))&quot;);
  14. 14. Java SE 6 APIs <ul><li>JDBC 4.0 (JSR 221) </li></ul><ul><ul><li>Spec Lead (2003 - 2006): Lance Andersen (Sun) </li></ul></ul><ul><ul><li>Auto-loading der Treiberklassen (kein Class.forName() mehr) </li></ul></ul><ul><ul><li>Neue SQLException Unterklassen (inkl. Iterable Interface) </li></ul></ul><ul><ul><li>National Character Sets (NCHAR, (LONG)NVARCHAR, NCLOB) </li></ul></ul><ul><ul><li>BLOB/CLOB support, RowID support (wie in DB2 + Oracle) </li></ul></ul><ul><ul><li>SQL Annotationen für Java-Methoden, siehe Beispiel: </li></ul></ul>interface ABQuery extends BaseQuery { @Select(sql = &quot;SELECT * from table where a = ?1 and b = ?2&quot;) DataSet<LoanApplication> getAB(String A, String B); }
  15. 15. Java SE 6 APIs <ul><li>GUI </li></ul><ul><ul><li>JTable sortieren und filtern (statt z. B. GlazedLists) </li></ul></ul><ul><ul><li>Splash screen vor dem Laden der JVM per CL oder Manifest </li></ul></ul><ul><ul><li>Native TrayIcon Unterstützung </li></ul></ul><ul><ul><li>Bessere Drag'n'Drop Fähigkeiten (Drop Actions) </li></ul></ul><ul><li>Monitoring & Management (JMX 1.0: JSR 3) </li></ul><ul><ul><li>Spec Lead (1998 - 2006): Eamonn McManus (Sun) </li></ul></ul><ul><ul><li>Neu: Attach on demand </li></ul></ul><ul><li>Viele Security enhancements, z. B. </li></ul><ul><ul><li>XML Digital Signature API (JSR 105) </li></ul></ul><ul><ul><li>Kerberos integration </li></ul></ul><ul><ul><li>Smartcard API (JSR 268) </li></ul></ul>
  16. 16. Java SE 6 APIs <ul><li>Java Compiler API (JSR 199) javax.tools </li></ul><ul><ul><li>Spec Lead (2002): Neal Gafter (Microsoft) </li></ul></ul><ul><ul><li>Spec Lead (2006): Peter von der Ahe (Sun) </li></ul></ul><ul><li>Pluggable Annotation Processing API (JSR 269) </li></ul><ul><ul><li>Spec Lead (2005 - heute): Joseph &quot;Joey&quot; D. Darcy (Sun) </li></ul></ul><ul><ul><li>Standardisierung des Annotation- Processing im Gegensatz zur Annotations definition in J2SE 5 (JSR 175) </li></ul></ul><ul><ul><li>Hilfreich für Metaprogramming-Tools </li></ul></ul>
  17. 17. Java SE 6 APIs <ul><li>Java Architecture for XML Binding (JAXB) 2.0 (JSR 222) </li></ul><ul><ul><li>Spec Lead (2003): Sekhar Vajjhala (Sun) </li></ul></ul><ul><ul><li>Spec Lead (heute): Kohsuke Kawaguchi (Sun) </li></ul></ul><ul><li>Streaming API for XML (JSR 173) </li></ul><ul><ul><li>Spec Lead (2002): Christopher Fry (BEA) </li></ul></ul><ul><ul><li>Spec Lead (heute): Larry Cable (BEA) & Thorick Chow (BEA) </li></ul></ul><ul><li>Common Annotations for the Java Platform (JSR 181) </li></ul><ul><ul><li>Spec Lead (2004-2006): Rajiv Mordani (Sun) </li></ul></ul>
  18. 18. Java SE 6 Update 10 <ul><li>&quot;Consumer JRE&quot;-Release </li></ul><ul><ul><li>Startet schneller (lädt gefüllten Cache vor dem Start) </li></ul></ul><ul><ul><li>Besseres Installations-&quot;Gefühl&quot; </li></ul></ul><ul><ul><li>Modular: Java &quot;Kernel&quot; = minimaler Satz von Bibliotheken </li></ul></ul><ul><ul><ul><li>Reicht für &quot;Hallo Welt&quot; </li></ul></ul></ul><ul><ul><ul><li>Download und Installation von Rest wenn benötigt </li></ul></ul></ul><ul><ul><li>Neue Applet-Technologie: Direkt auf Desktop ziehbar = Widget </li></ul></ul>
  19. 19. Java SE 6 Update 10 Grafik: Danny Coward (2007)
  20. 20. Java SE 6 Update 10 Grafik: Danny Coward (2007)
  21. 21. Java SE 7 <ul><li>enum-Werte definierbar: </li></ul><ul><li>switch/case über String-Literale: </li></ul>enum Typ { eins (1), drei (3), zehn (10); } switch (answer.toLowerCase()) { case &quot;yes&quot;: /* code */ case &quot;no&quot;: /* error */ }
  22. 22. Java SE 7 APIs <ul><li>Unterstützung von dynamisch typisierten Sprachen in JVM (JSR 292) </li></ul><ul><ul><li>Spec Lead (2006): Gilad Bracha </li></ul></ul><ul><ul><li>Spec Lead (heute): Danny Coward </li></ul></ul><ul><ul><li>Neuer Bytecode invokedynamic </li></ul></ul><ul><ul><li>Evtl. mitgeliefert: BeanShell (JSR 274), Groovy, JRuby, Jython </li></ul></ul><ul><ul><li>Java FX TM Script -> Eigener TechTalk? </li></ul></ul>
  23. 23. Java SE 7 APIs <ul><li>Neue Version: JMX 2.0 (JSR 255) </li></ul><ul><ul><li>Spec Lead (2004 - heute): Eamonn McManus (Sun) </li></ul></ul><ul><ul><li>Namespaces </li></ul></ul><ul><ul><li>&quot;Federated JMX technology servers&quot; </li></ul></ul><ul><li>Web Services Connector for JMX Agents (JSR 262) </li></ul><ul><ul><li>Spec Lead (2004 - heute): Eamonn McManus (Sun) </li></ul></ul>Grafik: Sun JSR
  24. 24. Java SE 7 Modularisierung <ul><li>Improved modularity support (JSR 294) </li></ul><ul><ul><li>Spec Lead (2006): Gilad Bracha </li></ul></ul><ul><ul><li>Spec Lead (heute): Alex Buckley (Sun) </li></ul></ul><ul><ul><li>Führt u. a. zu Änderungen an der Klassendateiendefinition </li></ul></ul>superpackage de.dlr.test { // super-package exports: export de.dlr.test.Class1; export de.dlr.test.doc.*; // super-package members: member de.dlr.test.Class1; member de.dlr.test.doc.* member de.dlr.test.secret.*; }
  25. 25. Java SE 7 Modularisierung <ul><li>Java Module System (JSR 277, hängt von JSR 294 ab) </li></ul><ul><ul><li>Spec Lead (2005): Stanley M. Ho (Sun) </li></ul></ul><ul><ul><li>Spec Lead (heute): Stanley M. Ho & Alex Buckley (Sun) </li></ul></ul><ul><li>Features: </li></ul><ul><ul><li>JAR wird erweitert zu JAM (Java Module) und enthält </li></ul></ul><ul><ul><ul><li>Abhängigkeiten (Name + Version) </li></ul></ul></ul><ul><ul><ul><li>Erweiterbare Metadaten (z. B. Name, Main-Klasse, Members, Export, Import = Abhängigkeit) </li></ul></ul></ul><ul><ul><li>Lokale Repositories für jedes Java-System/Nutzer-Login </li></ul></ul><ul><ul><ul><li>Repositories unterschieden in global , Application- , URL- </li></ul></ul></ul><ul><ul><li>Security (signing) ähnlich zu JARs </li></ul></ul><ul><ul><li>Kompatibilität der Abhängigkeiten zu gewöhnlichen JARs </li></ul></ul>
  26. 26. Java SE 7 GUI <ul><li>Swing Application Framework (JSR 296) </li></ul><ul><ul><li>Spec Lead (2006 - heute): Hans Muller (Sun) </li></ul></ul><ul><ul><li>Lebenszyklus einer Swing Applikation (z. B. ExitListener mit Veto) </li></ul></ul><ul><ul><li>Action-Manager ( @Action ) </li></ul></ul><ul><ul><li>Resource Management (+ Convention over Configuration) </li></ul></ul><ul><ul><li>Data injection ( @Resource ) </li></ul></ul><ul><ul><li>Task < SwingWorker < Future </li></ul></ul><ul><ul><ul><li>TaskService, TaskMonitor </li></ul></ul></ul><ul><ul><li>Storage / Session state (per XML, per User) </li></ul></ul>
  27. 27. Java SE 7 <ul><li>Concurrency utilities update (JSR 166y) </li></ul><ul><ul><li>Spec Lead (2002 - 2004): Doug Lea </li></ul></ul><ul><ul><li>Ursprünglich in J2SE 5 eingeführt, in x- und y-Versionen erweitert </li></ul></ul><ul><ul><li>Ermöglicht einfache Nutzung von Multicore-Rechnern </li></ul></ul><ul><ul><li>Fork/Join </li></ul></ul><ul><ul><ul><li>Worker thread-Pool </li></ul></ul></ul><ul><ul><ul><li>Work-stealing </li></ul></ul></ul>Grafik: Doug Lea
  28. 28. Java SE 7 <ul><li>Beans binding (JSR 295) </li></ul><ul><ul><li>Spec Lead (2006 - heute): Scott Violet (Sun) </li></ul></ul><ul><ul><li>Anwendungsgebiet beispielsweise: </li></ul></ul><ul><ul><ul><li>Swing-Properties binden </li></ul></ul></ul><ul><ul><ul><li>Konverter ermöglichen Typumwandlung </li></ul></ul></ul>
  29. 29. Java SE 7 <ul><li>Bean validation (JSR 303) </li></ul><ul><ul><li>Spec Lead (2006): Jason Carreira </li></ul></ul><ul><ul><li>Spec Lead (heute): Emmanuel Bernard (Red Hat Middleware LLC) </li></ul></ul><ul><ul><li>JSR 303 bietet Annotations- und Validierklassen für validierende Annotationen (!), z. B. @NotNull </li></ul></ul><ul><ul><li>Custom constraints mit Validator<T> </li></ul></ul><ul><ul><li>Auch für java.util.{Collection, Set, List, Map} </li></ul></ul>
  30. 30. Java SE 7 <ul><li>Annotations on Java Types (JSR 308) </li></ul><ul><ul><li>Spec Lead (2006): Michael Ernst & Danny Coward (Sun) </li></ul></ul><ul><ul><li>Spec Lead (heute): Alex Buckley (Sun) & Michael Ernst </li></ul></ul><ul><ul><li>@NonNull </li></ul></ul><ul><ul><li>@ReadOnly </li></ul></ul><ul><ul><li>@Interned </li></ul></ul><ul><ul><li>@Tainted </li></ul></ul><ul><ul><li>@Mutable </li></ul></ul>Map<@NonNull String, @NonEmpty List<@Readonly Document>> files; void monitorTemperature() throws @Critical TemperatureException{};
  31. 31. Java SE 7 <ul><li>More new I/O APIs for the Java Platform (JSR 203) java.nio </li></ul><ul><ul><li>Spec Lead (2003): Mark Reinhold (Sun) </li></ul></ul><ul><ul><li>Spec Lead (heute): Alan Bateman (Sun) </li></ul></ul><ul><ul><li>Änderungen im Dateisystem verfolgen </li></ul></ul><ul><ul><li>Sicherheitsattribute (ACLs, Dateiberechtigungen) </li></ul></ul><ul><ul><li>Symbolische Links </li></ul></ul><ul><ul><li>Path, Directory, Visitors </li></ul></ul>
  32. 32. Java SE 7 <ul><li>Enterprise Beans 3.0 (JSR 220) </li></ul><ul><ul><li>Spec Lead (2003): Linda DeMichiel (Sun) </li></ul></ul><ul><ul><li>Spec Lead (2007): Linda DeMichiel & Michael Keith (Oracle) </li></ul></ul><ul><li>Javadoc TM Tag Technology Update (JSR 260) </li></ul><ul><ul><li>Spec Lead (2004): Denis Mikhalkin (Sun) & Amy Fowler (Sun) & Kathy Walrath (Sun) </li></ul></ul><ul><ul><li>Spec Lead (heute): Danny Coward (Sun) </li></ul></ul><ul><ul><li>seit 1995 fast unverändert </li></ul></ul><ul><ul><li>Einbetten von Beispielen und Anwendungsfällen </li></ul></ul><ul><ul><li>Semantischer Index von Klassen und Packages </li></ul></ul>
  33. 33. Java SE 7 <ul><li>Date and Time API (JSR 310) </li></ul><ul><ul><li>Spec Lead (2007 - heute): Stephen Colebourne (Google) & Michael Nascimento Santos (Sun) </li></ul></ul><ul><ul><li>Dritter Versuch nach Date (JDK 1.1) und Calendar (JDK 1.4) </li></ul></ul><ul><ul><li>Definiert Instant, Interval, Duration </li></ul></ul><ul><ul><li>Matchers, Adjusters, Resolvers </li></ul></ul><ul><ul><li>Fußt auf ISO 8601 (XML), um Zeitzonen ergänzt </li></ul></ul><ul><ul><li>Existierende Klassen wie util.Date , sql.Date und sql.Time sollen neue Interfaces implementieren, nicht deprecated werden </li></ul></ul><ul><ul><li>Todo: Periods, Formatting, Parsing </li></ul></ul>
  34. 34. Java SE 7 <ul><li>Units specification (JSR 275, nur Java SE) javax.measure </li></ul><ul><ul><li>Spec Lead (2005): Steve Metsker (CapTech Ventures) </li></ul></ul><ul><ul><li>Spec Lead (heute): Jean-Marie Dautelle & Werner Keil </li></ul></ul><ul><ul><li>Quantity ( λ ), Dimension (nm), Measure (10), Unit (Wellenlänge) </li></ul></ul><ul><ul><li>Typsicher und beliebig erweiterbar </li></ul></ul><ul><ul><li>Datenbank mit Unterstützung von ISO 1000, ISO 31 (BIPM), NIST </li></ul></ul>class Person { void setWeight(Measurable<Mass> weight); } double weightInKg = weight.doubleValue(KILOGRAM); // Oder lb. double weightInLiter = weight.doubleValue(LITER); // Error!
  35. 35. Java SE 7, 8, … Mögliche Spracherweiterungen <ul><li>Array-Syntax für Collections erlaubt (wie in Scriptsprachen) </li></ul><ul><li>Property-Literale (genaue Syntax diskutierbar) </li></ul><ul><li>Automatische Typ-Ermittlung durch den Compiler </li></ul>List content = new LinkedList(10); Content[1] = &quot;Hallo&quot;; Point p = new Point(); p->X = 56; final map = new HashMap<String, Integer>(); // oder map := new HashMap<String, Integer>();
  36. 36. Java SE 7, 8, … Mögliche Spracherweiterungen <ul><li>Factory-Methoden für Typisierung per Unterklasse </li></ul><ul><li>BigInteger-Operationen endlich voll unterstützt / überladen </li></ul><ul><li>Operator-Überladen, wie beispielsweise aus C++ bekannt </li></ul><ul><ul><li>für BigInteger bereits angedeutet, auch für Enums geplant </li></ul></ul><ul><li>Closures </li></ul><ul><ul><li>Lead: Neal Gafter (Microsoft, früher Sun + Google) </li></ul></ul><ul><ul><li>Veto durch Joshua Bloch (Google, früher Sun) </li></ul></ul>Foo f2 = Foo.new(SubclassOfFoo.class, 1, 2); BigInteger bi = new BigInt(&quot;1&quot;) + new BigInteger(&quot;1&quot;);
  37. 37. Java SE 7, 8, … Mögliche Spracherweiterungen <ul><li>XML Integration in Java </li></ul><ul><li>Mehrere Exceptions in einer Anweisung fangen: </li></ul><ul><ul><li>Entspricht einem return mit variablen Typ </li></ul></ul><ul><ul><li>} catch (IOException, NullPointerException io_or_npe) { </li></ul></ul>feature.add( <reviewed> <who>{ reviewer }</who>; <when>{ dc.encode(time) }</when>; </reviewed> );
  38. 38. Quellen JDK 1.0 – J2SE 5.0 <ul><li>Java – Geschichte </li></ul><ul><ul><li>http://www.java.com/en/javahistory/timeline.jsp </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Java_version_history </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Java_Community_Process </li></ul></ul><ul><ul><li>http://openjdk.java.net ersetzt http://openjdk.dev.java.net </li></ul></ul><ul><ul><li>http://www.sun.com/software/opensource/java/faq.jsp </li></ul></ul><ul><ul><li>http://jcp.org/en/jsr/stage?listBy=final </li></ul></ul><ul><li>Ältere Features </li></ul><ul><ul><li>http://en.wikipedia.org/wiki/Strictfp </li></ul></ul><ul><ul><li>http://java.sun.com/developer/technicalArticles/JavaLP/assertions/ </li></ul></ul><ul><ul><li>Joshua Bloch (2008): Effective Java, (2nd ed.), Addison Wesley </li></ul></ul>
  39. 39. Quellen Java SE 6 <ul><li>Java SE 6 </li></ul><ul><ul><li>http://www.tutego.com/java/java-6-mustang-news.htm </li></ul></ul><ul><ul><li>https://scripting.dev.java.net </li></ul></ul><ul><ul><li>http://weblogs.java.net/blog/shan_man/archive/2006/02/ choosing_the_dr.html </li></ul></ul><ul><li>Java SE 6 Update 10 </li></ul><ul><ul><li>http://java.sun.com/developer/technicalArticles/javase/java6u10/ </li></ul></ul>
  40. 40. Quellen Java SE 7 <ul><li>Features </li></ul><ul><ul><li>http://tech.puredanger.com/java7/ </li></ul></ul><ul><ul><li>http://www.tutego.com/java/jdk7-Java-SE-7.htm </li></ul></ul><ul><ul><li>http://www.infoq.com/news/2007/07/concurrency-java-se-7 </li></ul></ul><ul><li>GUI </li></ul><ul><ul><li>https://appframework.dev.java.net </li></ul></ul>
  41. 41. Quellen Java SE 8, … <ul><li>http://www.cafeaulait.org/slides/nycjava/java7/Java_7_and_Beyond.html </li></ul><ul><li>http://wiki.java.net/bin/view/JDK/ClosuresSyntaxInJava7 </li></ul><ul><li>Sonstiges </li></ul><ul><ul><li>http://www.sun.com/aboutsun/media/ceo/ </li></ul></ul><ul><li>Die meisten Portraits stammen von den Blog-Seiten der Spec Leads </li></ul><ul><li>Wall-E ist von http://www.walle-derfilm.de </li></ul>
  42. 42. Fragen?

Editor's Notes

  • Beginnen mit Anekdote über Studium, erstes Java-Programm und wie ich damals entwickelt habe

×