Advanced   Java   Services Übersicht über die Sprach- und Syntaxerweiterungen durch Java 7 Back Next Up Home


Übersicht über die Sprach- und Syntaxerweiterungen durch Java 7

In Java 7 gibt es eine ganze Reihe nützlicher Neuerungen. Die allgemeine Meinung ist aber, daß es kein Major Release ist. Die ursprüngliche Planung konnte nicht eingehalten werden und einige der geplanten Neuerungen werden erst in Java 8 Wirklichkeit werden.

Java SE 7 Features and Enhancements (Oracle Release Notes)

Nachfolgende eine Übersicht

Quelle: http://donaldojdk.files.wordpress.com/2011/11/55j7.pdf

55j7-001-001-60.jpg


Nice to have

Binary Literals

55j7-002-002-60.jpg


Underscores in Numeric Literals

55j7-003-003-60.jpg


Strings in switch Statements

55j7-004-004-60.jpg


Type Inference for Generic Instance Creation (Diamond Operator)

55j7-009-009-60.jpg


Useful improvements

The try-with-resources Statement

55j7-005-005-60.jpg

try-with-resources wird ausführlicher hier behandelt.


Suppressed Exceptions

55j7-006-006-60.jpg

Suppressed Exceptions werden ausführlicher hier behandelt.


Catching Multiple Exception Types

55j7-007-007-60.jpg


Rethrowing Exceptions with Improved Type Checking

55j7-008-008-60.jpg


NIO 2  Neue Möglichkeiten zum Dateihandling

Neu sind die folgenden 3 Packages

Die neuen Klassen Files, FileSystem, Paths, Path ermöglichen ein vereinfachtes und präziseres Dateihandling. So können etwa kleine Dateien "in einem Rutsch" eingelesen werden.

Eine ausführliche Übersicht über die neuen Klassen und Möglichkeiten findet man hier.


Paths und Path

55j7-010-010-60.jpg


File und Path

55j7-010-010-60.jpg


Files

55j7-010-010-60.jpg


DirectoryStream

55j7-010-010-60.jpg


Symbolic Links

55j7-010-010-60.jpg


WalkFileTree

55j7-010-010-60.jpg


WatchService

Mit Hilfe der Klasse Filesystem kann man einen WatchService erhalten, mit dem auf Veränderungen in einem Dateisystem reagieren kann. Etwas ganz ähnliches gibt es in C# mit der Klasse FileSystemWatcher.

55j7-010-010-60.jpg

Ein ausführliches Beispiel zum WatchService findet man hier.

Oracle Details...


FileSystems

55j7-010-010-60.jpg


zip-Filesystems (Linux)

55j7-010-010-60.jpg


Concurrency

Phaser

55j7-010-010-60.jpg


LinkedTransferQueue

55j7-010-010-60.jpg


ForkJoinPool

55j7-010-010-60.jpg


ForkJoinTask

55j7-010-010-60.jpg


RecursiveAction, RecursiveTask

55j7-010-010-60.jpg


Concurrent Random Numbers

55j7-010-010-60.jpg


ConcurrentLinkedDeque

55j7-010-010-60.jpg


Swing

Swing Nimbus Look and Feel

55j7-010-010-60.jpg


JLayer

55j7-010-010-60.jpg


AWT und Swing

55j7-010-010-60.jpg


Translucent Windows

55j7-010-010-60.jpg


JColorChooser new Tabs

55j7-010-010-60.jpg


Unicode, Locale, Fonts

Unicode 6 Unterstützung

55j7-010-010-60.jpg


Locale Enhancement

55j7-010-010-60.jpg


Compact Font Format

55j7-010-010-60.jpg


Linux Fonts

55j7-010-010-60.jpg


JDBC

RowSetFactory, RowsetProvider

55j7-010-010-60.jpg


Derby Enhancements

55j7-010-010-60.jpg


VM Improvements

Garbage First Collector

55j7-010-010-60.jpg

Dieses Feature wurde erst mit dem Update 4 Ende April 2012 von Java7 realisiert!

Die Pläne für einen verbesserten Garbage-Collector gehen bis ins Jahr 2004 zurück. Damals veröffentlichte Sun ein Papier (04-g1-paper-ismm.pdf) in dem ein neuer Algorithmus G1 (garbage first) vorgeschlagen wurde, der den CMS-Algorithmus (Concurrent Mark-Sweep) ablösen soll. CMs arbeitet grob gesagt nach folgendem Schema: Die Objekte im Speicher werden nach ihrer Lebensdauer in verschiedenen Bereichen abgelegt.Jeder Bereich deckt ein bestimmtes Zeitintervall ab. Der Garbage Collector durchläuft diese Bereiche und löscht alle nicht mehr referenzierten Objekte. Dies führt mit der Zeit zu einer Fragmentierung des Speichers. Beim dadurch notwendigen Defragmentieren müssen Objekte umkopiert werden. Dazu muß aber die VM immer wieder mal kurz angehalten werden, was Performance kostet.

G1 setzt Wahrscheinlichkeitstheorie ein. In vielen Fällen kann man davon ausgehen, daß, je länger ein Objekt existiert es wahrscheinlicher wird, daß es nicht mehr gebraucht wird. G1 teilt deswegen den Speicher in 1MB Bereiche ein und versucht vorauszusagen, wann die Objekte in diesen Bereichen ihre Lebenszeit überschritten haben.


Garbage-First Collector

Java HotSpot Virtual Machine Performance Enhancements

Java Virtual Machine Support for Non-Java Languages

Oracle Details...


Bugfixes

Bugfixes in JAXP, JAX-WS und JAXB

55j7-010-010-60.jpg


Miscellanous

JavaDoc Improvements

55j7-010-010-60.jpg


CSS in JavaDoc

55j7-010-010-60.jpg


Weitere Oracle Seiten

Adoption Guide

Compatibility

Valid XHTML 1.0 Strict top Back Next Up Home