Java Foundation Classes (JFC/Swing) |
Die JFC-Klassen stellen einige komplexe Oberflächenkomponenten zur Verfügung, deren Look-and-Feel austauschbar ist und somit an die nativen Oberflächen oder an eigene Erfordernisse angepasst werden kann. |
Flexibilisierung des Security-Mechanismus | Beim neuen Security-Mechanismus können Privilegien mit erheblich feinerer Granularität vergeben werden. Hierzu wurden verschiedene Permission-Klassen definiert, die eine individuelle Zuteilung der Zugriffsrechte auf Ressourcen an Programme gestattet. |
Schwache Referenzen |
Mit den Klassen im neuen Paket java.lang.ref können schwache Referenzen auf Objekte gehalten werden. Schwach heißt, dass das referenzierte Objekt trotzdem vom Garbage Collector entfernt werden kann. |
Erweiterte Gleitpunkt-Darstellungen |
Auf Plattformen, die die erweiterten Gleitpunkt-Darstellungen unterstützen, können Gleitpunkt-Operationen mit höherer Genauigkeit und Geschwindigkeit durchgeführt werden. In diesem Zusammenhang wurde das neue Schlüsselwort strictfp eingeführt. |
Multithreading |
- Die Methoden stop(), suspend() und resume() der Klasse Thread wurden verworfen, da sie Inkonsistenzen hervorrufen bzw. sich als Deadlock-trächtig erwiesen haben.
- Mit den beiden neuen Klassen ThreadLocal und InheritableThreadLocal können lokale Variablen vereinbart werden, die gegenüber anderen Threads völlig gekapselt sind. Weiterhin erlauben sie auf einfache Weise die Verwendung von Thread-lokalen Variablen, bei Threads, die aus Runnable-Implementierungen erzeugt werden.
- Unter Solaris werden jetzt die nativen Threads des Betriebssystems genutzt, um Java-Threads auszuführen.
|
Vergleichen und Sortieren von Objekten | Die Interfaces java.lang.Comparable und java.util.Comparator erlauben es, eine Ordnung auf einer Klasse zu definieren. Diese Ordnung kann von der neuen Klasse java.util.Arrays dazu verwendet werden, Objekte einer Klasse zu sortieren. |
Paketversionierung, Reflection: Package | Unter Verwendung der neuen Klasse java.lang.Package ist es möglich, Pakete zu versionieren und zur Laufzeit zu ermitteln, ob ein Paket kompatibel zu einer benötigten Version ist. |
Sound |
Eine neue Sound-Engine bietet eine höhere Wiedergabequalität und unterstützt neben au-Dateien auch die Formate wav und aiff. |
Performance-Steigerungen | Durch Verbesserungen an der Virtual Machine konnte die Ablaufgeschwindigkeit signifikant erhöht werden. Weiterhin sind die Windows- und Solaris-Versionen des JDK mit einem Just-in-Time-Compiler ausgestattet, der den Bytecode zur Laufzeit in nativen Code übersetzt. |
Verbesserungen bei RMI | Bei RMI wurde die Implementierung eigener Socket-Factories (z. B. zur transparenten Verschlüsselung) wesentlich vereinfacht. Darüber hinaus besteht die Möglichkeit, persistente Referenzen auf ein entferntes Objekt zu halten. Wenn ein Client eine solche Referenz zum ersten Mal benutzt, wird das dazugehörige Server-Objekt aktiviert, falls es zu diesem Zeitpunkt inaktiv ist. Neue Aktivierungsklassen erlauben es, Server-Objekte erst bei einer Anfrage von einem Client zu aktivieren. |
Verbesserungen bei der Object Serialization |
Im io-Paket gibt es neue Interfaces, die es prinzipiell ermöglichen, die persistenten Daten eines Objekts von seinen Datenelementen unabhängig zu machen. Für diese Erweiterung wurde Abwärtskompatibilität zum bisherigen Format der Object Serialization gewahrt. |