Die ultimativen Links zur Java 7, JDK 7 und OpenJDK 7
Die Java Platform Standard Edition 7 (Java SE 7) ist der Nachfolger von Java 6 und erreichte uns am 28.07.2011. Eigentlich wollte Oracle etwas schneller neue Java-Versionen veröffentlichen, doch die Übernahme von Sun durch Oracle, der Fixierung auf JavaFX und den Lizenzwechsel auf GPL schoben das Datum immer weiter nach hinten. (Java 5 kam Ende 2004 in die Regale und Java 6 Ende 2006.)
Die Entwicklung von Java 7 findet beim OpenJDK statt, was unter der GPL 2 steht. OpenJDK7 ist die Referenz-Implementierung der Java SE 7 Spezifikation (JSR 336), die Version zum Download bei Oracle ist aber Oracle JDK (kurz JDK), was auf dem OpenJDK basiert.
- Java 7 Download bei den Java Platform, Standard Edition 7 Source Snapshot Releases
- Java Platform, Standard Edition 7 API Specification
Updates zu Java 7 sind in der Mailing-Liste dokumentiert.
Auf Java 7 folgt Java 8, veröffentlicht im März 2014.
Deutschsprachige Java 7 Beiträge aus der Java-Insel
Java 7 relevanten JSRs
- JSR 203: NIO.2. Schon länger geplantes Update für NIO
- JSR 292: Supporting Dynamically Typed Languages on the Java Platform. Neuer Bytecode (invokedynamic) für dynamische Programmiersprachen
- JSR 294: Improved Modularity Support in the Java Programming Language. Heute das Projekt Jigsaw, das aber unter keiner JSR entwickelt wird
- JSR 334: Small Enhancements to the Java Programming Language (OpenJDK Project Coin)
- JSR 901: Java Language Specification — Maintenance Review to incorporate fixes since Java SE 5.0 and changes from the above JSRs
- JSR 924: JVM Specification — Maintenance Review to incorporate changes made in Java SE 6.0 and JSR 292
- Umbrella JSR für Java 7 ist JSR 336
Änderungen an der JVM und am Tooling
- JSR 292 Cookbook: Fresh Recipes with New Ingredients
- JSR 292 and the Multi-lingual JVM
- Dynamic Language Support on the Java Virtual Machine
- InvokeDynamic And MethodHandles On Snow Leopard
- A glimpse at MethodHandle and its usage
- A Renaissance VM: One Platform, Many Languages
- Weiteres zu JSR 292 hier, hier
- Komprimierte Objektzeiger auf 64-Bit Maschinen
- Neuen Garbage-First GC (G1) ISMM 2004 paper
- DTrace-Proben in der Oracle JVM (etwa Solaris) (Seit Java 6 zum Teil schon)
- MethodHandle performance in Java 7
Sprachänderungen
- Type Inference (Diamond-Operator)
- Strings in switch Statements
- try-with-resources Statement
- Underscores in Numeric Literals (Unterstriche in numerischen Literalen)
- Catching Multiple Exception Types
- Rethrowing Exceptions with Improved Type Checking
- Binary Literals (Binäre Literale)
- Using Non-Reifiable Parameters with Varargs Methods (@SafeVarargs)
- Project Coin/JSR 334 Proposed Final Draft Specification, v1.0
- Automatically Unlocking with Java 7 und Teil 2
NIO.2
- NIO.2 Kapitel aus dem Oracle Java Tutorial
- Sweeping the File System NIO-2 (Manish K. Maheshwari, 2009-10-14)
- JavOne TS-5052: Hacking the File System with JDK Release 7 (Alan Bateman, Carl Quinn. 2009)
- The Open Road: java.nio.file (Elliotte Rusty Harold. März 2008)
- What's new NIO.2?
- Java 7 : New I/O features (Asynchronous operations, multicasting, random access) with JSR 203 (NIO.2)
- An NIO.2 primer, Part 1- The asynchronous channel APIs
Bibliotheken
- How to Decorate Components with the JLayer Class
- JLayer, Exploring JDK 7, Part 3: Decorating Swing Components with JLayer
- Properties ändern sich in Java 7
- Flush beim Deflater und den Kompressionsströmen
- Neue Klasse Objects
- System.lineSeparator
- Neue Klasse ThreadLocalRandom
- New Color Chooser in JDK 7
- java.awt.SecondaryLoop (Kurzbeschreibung)
- Änderungen am Klassenlader
- Concurrency and collections updates (jsr166y). Insbesondere das Fork/Join-Framework ist interessant. Koordiniert von Doug Lea
- Fork/Join im Java Tutorial von Oracle
- JSR 166 Concurrency Updates Hit JDK 7
- Java 7 TransferQueue
- JavaOne: Brian Goetz on concurrency in Java 7
- Let’s Resync Concurrency Features in JDK™ 7 (Java One 2008)
- Unterstützung für SCTP (Stream Control Transmission Protocol)
- SDP (Sockets Direct Protocol)
Allgemeines
- JDK 7 Adaption Guido
- JDK 7: New Interfaces, Classes, Enums, and Methods
- JDK 7 Features
- JDK 7 Reference Card
- Diskussionen über Änderungen: Small language enhancements (Project Coin)
- Java 7 and Beyond
- Project Coin: Language Evolution in the Open
- Java 7 - Pure Danger Tech
- There’s not a moment to lose!
Einige Dinge wurden auf Java 8 verschoben, etwa Lambda-Ausdrücke, oder ein neues Modulsystem (was sich von Java 8 aber weiter nach Java 9 verschob).