A.4.1 | Allgemeines |
Sicherheits-Features Mit Version 1.4 wurde die Java Cryptography Extension (JCE) in die Standard-Edition des Java-2-SDK aufgenommen. Dadurch ist es bereits mit dem Standard-SDK möglich, Verschlüsselung zu nutzen. Weitere Neuerungen sind die Java Secure Socket Extension sowie der Java Authentication and Authorization Service (JAAS) und das Generic Security Services API (GSS-API) Verbesserungen an der 2D-API Beim 2D-API gibt es einige Detailverbesserugen wie die Unterstützung Hardware-gestützter Offscreen-Images, Performance-Verbesserungen bei Zeichenmethoden sowie neue Druckfunktionen, die unter anderem die Suche von Druckern sowie die Ermittlung der Fähigkeiten eines Druckers ermöglicht. Verbesserungen am AWT Das AWT wurde um die Möglichkeit eines Vollbildschirm-Modus sowie die Unterstützung für Mäuse mit Scroll-Rad erweitert. Das AWT und Swing haben seit dieser Version ein neues, gemeinsames API für den Fokus. Verbesserungen an Swing Swing wurde um einige neue Komponenten erweitert, unter anderem mit einen Eingabefeld, das nur Text mit einem bestimmten Format zulässt sowie einem Zahleneingabefeld, das sich mit der Maus bedienen lässt. Außerdem können selbstdefinierte Popup-Fenster erstellt werden. Weiterhin wurde das Windows-Look-And-Feel auf die Erscheinung von Windows 2000 aktualisiert sowie Drag-and-Drop mit externen Applikationen ermöglicht.
Java Web Start (JWS) Java Web Start bietet die Möglichkeit, Java-Applikationen ähnlich wie Applets über einen Link in einer Webseite herunterzuladen und zu starten. Persistenz für Java Beans Mit dieser Neuerung können die Zustände und die Verknüpfungen von Beans textuell gespeichert werden. Mit den enthaltenen Klassen XMLEncoder und XMLDecoder werden diese Informationen als XML-Dokumente gespeichert und geladen. Zusicherungen (Assertions) Mit der neuen assert-Anweisung kann die Einhaltung von Randbedingungen überwacht werden, die in einem Programm immer gelten müssen. Damit dient dieses Feature der Qualitätsverbesserung des Programmcodes und zur Erleichterung der Fehlersuche. Verkettung von Exceptions Durch eine entsprechende Erweiterung der Klasse Throwable und damit aller Exception-Klassen ist es jetzt möglich, zu einer Exception die jeweils verursachende Exception zu ermitteln. Dies vereinfacht die Fehlersuche erheblich, wenn Exceptions mehrfach umgesetzt werden, so wie es in komplexen Applikationen oft vorkommt. Verbesserungen an der Virtual Machine Die Virtual Machine für Solaris/SPARC unterstützt jetzt den 64-Bit-Modus. Diverse Teile der Klassenbibliothek wurden hierzu überarbeitet. Die Verarbeitung von Betriebssystem-Signalen wurde dahingehend verbessert, dass die Virtual Machine die Verkettung von Signal-Handler-Routinen unterstützt. Außerdem wird das J2SDK nur noch mit der HotSpot Virtual Machine ausgeliefert. Die so genannte »Classic«-Virtual Machine ist nicht mehr verfügbar.
Verbesserungen der Netzwerk-Unterstützung
- Unterstützung von IPv6
- Mit dem jetzt standardmäßig im J2SDK enthaltenen Paket javax.net.ssl stehen Socket-Klassen für SSL-Verbindungen zur Verfügung.
- Überarbeitung des FTP-Protokoll-Handlers einschließlich der Unterstützung für passive mode.
- Die Klasse Socket unterstützt die Übermittlung von Daten im TCP-Urgent-Mode.
- Das SOCKS-Protokoll wird auch in den Versionen 4 und 5 unterstützt.
- Mit der neuen Klasse NetworkInterface können die Netzwerkschnittstellen eines Hosts mit ihren jeweiligen Adressen ermittelt werden.
- Über die neue Methode DatagramSocket.connect() können Datagramm-Sockets auf Betriebssystem-Ebene so gebunden werden, dass sie ICMP-Unreachable-Nachrichten erhalten können, falls empfängerseitig kein Socket an den Zielport gebunden ist.
- Mit der Klasse URI können auch generische URIs dargestellt werden (z. B. Ressourcen-Bezeichner ohne Protokollangabe)
Flexibilisierung des Ladens von Klassen bei RMI Der RMIClassLoader greift seit Version 1.4 auf eine externe Provider-Klasse zurück, um Aufrufe zum Laden von Klassen zu delegieren. Diese Provider-Klasse kann mit dem Wert der System-Property java.rmi.server.RMIClassLoaderSpi konfiguriert werden. Auf diese Weise wird das Laden von entfernten Klassen flexibilisiert. Serialisierung Für die Serialisierung von Objekten wurden einige sicherheitsrelevante Verbesserungen durchgeführt. Mit neuen Lese- und Schreibmethoden von ObjectInputStream und ObjectOutputStream kann sichergestellt werden, dass ein in einen Stream geschriebenes Objekt nur genau einmal referenziert wird. In diesem Zuge wird zur Laufzeit eine Berechtigung erforderlich, wenn eigene Unterklassen dieser Streams eingesetzt werden, die bestimmte Lese- und Schreibmethoden überschreiben.
Verbesserungen bei JNDI Beim Java Naming and Directory Interface werden zwei neue Provider mitgeliefert: Zum einen für das Domain Name System (DNS) sowie für OMG-konforme Namensdienste für CORBA-Objekte. Der LDAP-Provider ist jetzt in der Lage, aus einer bestehenden Verbindung heraus eine TLS-Sitzung zu starten und diverse Authentifizierungsmethoden zu verwenden. Dadurch sind auch authentifizierte Verbindungen zu Windows Active Directories möglich.
Unterstützung für Unicode 3.0 Die Behandlung von Zeichen in den Klassen Character und String beruht jetzt auf dem Unicode 3.0-Standard. Damit werden auch die Schreibrichtungen von Schriften unterstützt (von links nach rechts oder umgekehrt). Java-Plug-in Das Java-Plug-in bietet jetzt die Möglichkeit zur Auswahl der Java-Laufzeitumgebung, in der Applets ausgeführt werden sollen. Auf diese Weise können auf einem System verschiedene JDK/JRE-Versionen installiert und ausgewählt werden, was unter anderem für Testzwecke sehr interessant ist. Weiterhin wird das Caching von Applet-Ressourcen wie Bildern sowie SSL-Verbindungen über die Java-eigene Funktionalität anstatt über den Browser unterstützt. Erweiterung des Collection API Bei diesem API gibt es einige neue Operationen wie die Rotation von Listenelementen oder den Austausch zweier Listenelemente. Verbesserungen des Accessibility API Hier wurde unter anderem die Bedienbarkeit ohne Maus verbessert. Erzeugung von Primzahlen Der Klasse java.math.BigInteger wurde eine intuitivere Methode zur Erzeugung von Primzahlen hinzugefügt. Dieser Methode braucht keine Mindestwahrscheinlichkeit dafür übergeben zu werden, dass das Ergebnis prim ist. Reflection API Teile dieses API wurden neu implementiert und sind deutlich schneller als zuvor. JDBC 3.0 Bei JDBC 3.0 gibt es einige neue Features wie den neuen Datentyp BOOLEAN und die Möglichkeit, BLOB-Felder zu ändern. Außerdem wurde die Unterstützung von Transaktionen durch die Verfügbarkeit von Savepoints verbessert. Änderungen bei den JDK-Tools Die wichtigsten Änderungen an den JDK-Tools sind nachfolgend aufgeführt:
- java und javac wurden um Optionen zur Unterstützung der neuen Zusicherungen erweitert. Bei java kann eingestellt werden, ob Zusicherungen gerpüft werden oder nicht.
- Mit dem neuen servertool können persistente Objekte registriert und aufgefunden werden.