Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Java ist auch eine Insel (2. Aufl.) von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 1.4
Java ist auch eine Insel (2. Auflage)
gp Kapitel 8 Die Funktionsbibliothek
  gp 8.1 Die Java-Klassenphilosophie
  gp 8.2 Wrapper-Klassen
    gp 8.2.1 Die Character-Klasse
    gp 8.2.2 Die Boolean-Klasse
    gp 8.2.3 Die Number-Klasse
    gp 8.2.4 Die Klasse Integer
    gp 8.2.5 Behandlung von Überlauf
    gp 8.2.6 Unterschiedliche Ausgabeformate
    gp 8.2.7 Boxing und Unboxing
  gp 8.3 Ausführung von externen Programmen
    gp 8.3.1 DOS-Programme aufrufen
    gp 8.3.2 Die Windows Registry verwenden
  gp 8.4 Kompilieren von Klassen
    gp 8.4.1 Der Sun-Compiler

Kapitel 8 Die Funktionsbibliothek

Was wir brauchen sind ein paar verrückte Leute; seht euch an,
wohin uns die Normalen gebracht haben.
– Georg Shar (1886–1950)

8.1 Die Java-Klassenphilosophie

Neben der Sprache und den damit verbundenen Anwendungsmöglichkeiten ist Java noch in einem anderen Punkt sehr stark: der Funktionsbibliothek. Eine plattformunabhängige Sprache – so wie sich viele C oder C++ vorstellen – ist nicht wirklich plattformunabhängig, wenn auf jedem Rechner andere Funktionen und Programmiermodelle eingesetzt werden. Genau dies ist der Schwachpunkt von C(++). Die Algorithmen, die kaum abhängig vom Betriebssystem sind, lassen sich überall gleich anwenden, doch spätestens bei grafischen Oberflächen ist Schluss. Dieses Problem tritt in Java seltener auf, da sich die Entwickler viel Mühe gegeben haben, alle wichtigen Funktionen in wohlgeformte Pakete zu setzen. Diese decken insbesondere die zentralen Bereiche Datenstrukturen, Ein- und Ausgabe, Grafik- und Netzwerkprogrammierung ab.


Galileo Computing

8.1.1 Übersicht über die Pakete der Standardbibliothek  toptop

Es folgt eine Übersicht über die Pakete, die Java in der Version 1.4 definiert. Sie beschreiben zusammen mehr als 2.700 Klassen und Schnittstellen. Das ergibt zusammen etwa 4.800 Attribute, mehr als 3.700 statische Variablen, mehr als 21.300 Objektmethoden und fast 2.500 statische Methoden. Die Exemplare der Klassen werden mit mehr als 3.500 Konstruktoren erzeugt.

Uns wird auffallen, dass es bei der Benennung der Pakete eine Methodik gibt. Die SPI-Pakete (SPI für Service Provider Implementation) implementieren die abstrakten Klassen und Schnittstellen aus dem Oberpaket.

Tabelle 8.1   Java 2-Plattform-Pakete zum SDK 1.4
java.applet Stellt Klassen für Java-Applets bereit, damit diese auf Webseiten ihr Leben führen können.
java.awt Das Paket AWT (Abstract Windowing Toolkit) bietet Klassen zur
Grafikausgabe und Nutzung von grafischen Bedienoberflächen.
java.awt.color Unterstützung von Farbräumen und Farbmodellen
java.awt.datatransfer Informationsaustausch zwischen (Java-)Programmen über die
Zwischenablage des Betriebssystems
java.awt.dnd Drag&Drop, um unter grafischen Oberflächen Informationen zu übertragen oder zu manipulieren.
java.awt.event Schnittstellen für die verschiedenen Ereignisse unter grafischen Oberflächen werden definiert.
java.awt.font Klassen, damit Zeichensätze genutzt und modifiziert werden
können
java.awt.geom Paket für die Java 2D API, um ähnlich wie im Grafikmodell von Postscript beziehungsweise PDF affine Transformationen auf beliebige 2D-Objekte anwenden zu können
java.awt.im Klassen für alternative Eingabegeräte
java.awt.im.spi Schnittstellen für Eingabemethoden
java.awt.image Erstellen und Manipulieren von Rastergrafiken
java.awt.image.renderable Klassen und Schnittstellen zum allgemeinen Erstellen von Grafiken
java.awt.print Bietet Zugriff auf Drucker und kann Druckaufträge erzeugen
java.beans Mit JavaBeans definiert Sun wiederverwendbare Komponenten auf der Client-Seite, die beim Programmieren visuell konfiguriert werden können.
java.beans.beancontext Mehrere zusammenarbeitende Beans sind in einem Kontext miteinander verbunden. Mit diesem Paket lässt sich dieser nutzen.
java.io Definiert Möglichkeiten zur Ein- und Ausgabe. Dateien werden als Objekte repräsentiert. Datenströme erlauben sequenziellen Zugriff auf die Dateiinhalte.
java.lang Ein Paket, welches automatisch geladen wird und unverzichtbare Klassen wie String, Thread oder Wrapper-Klassen enthält.
java.lang.ref Leben mit dem Garbage-Collector. Spezielle Varianten von Objekt-Referenzen, die vom Garbage-Collector besonders behandelt werden.
java.lang.reflect Mit Reflection ist es möglich, dass Klassen und Objekte über sich erzählen.
java.math Beliebig lange Ganzzahlen oder Fließkommazahlen
java.net Kommunikation über Netzwerke. Klassen zum Aufbau von Client- und Serversystemen, die sich über TCP beziehungsweise IP mit dem Internet verbinden lassen.
java.nio Neue IO-Implementierung für performante Ein- und Ausgabe
java.nio.channels Datenkanäle für nicht blockierende Ein- und Ausgabeoperationen
java.nio.channels.spi Anbieter für die Kanäle
java.nio.charset Definierte Zeichensätze, Decoder und Encoder für die Übersetzung zwischen Bytes und Unicode-Zeichen
java.nio.charset.spi Anbieter für die Zeichensätze aus java.nio.charset
java.rmi Aufruf von Methoden auf entfernten Rechnern
java.rmi.activation Unterstützung für die RMI-Aktivierung, wenn Objekte auf ihren Aufruf warten.
java.rmi.dgc Der verteilte Gargabe-Collector DGC (Distributed Garbage-
Collection)
java.rmi.registry Zugriff auf den Namensdienst unter RMI, die Registry
java.rmi.server Definition der Serverseite von RMI
java.security Klassen und Schnittstellen für Sicherheit
java.security.acl Unwichtig, da sie durch Klassen in java.security ersetzt wurden.
java.security.cert Analysieren und Verwalten von Zertifikaten, Pfaden und Rückruf (Verfall) von Zertifikaten
java.security.interfaces Schnittstellen zu RSA-Verschlüsselung (Rivest, Shamir Adleman AsymmetricCipher Algorithm) und DSA (Digital Signature Algorithm) Schlüsseln
java.security.spec Definition der Schlüssel und Algorithmen für Verschlüsselung
java.sql Zugriff auf Datenbanken über SQL
java.text Schnittstellen für die Entwicklung internationalisierter Programme. Behandlung von Text, Formatierung von Datumswerten und
Zahlen.
java.util Datenstrukturen, Raum und Zeit sowie Teile der Internationalisierung, Zufallszahlen
java.util.jar Möglichkeiten, um auf das eigene Archiv-Format JAR (Java Archive) zuzugreifen
java.util.logging Protokollieren von Daten und Programmabläufen
java.util.prefs Benutzer- und Systemeigenschaften werden über Konfigurationsdateien verwaltet
java.util.regex Unterstützung von regulären Ausdrücken
java.util.zip Zugriff auf komprimierte Daten mit GZIP und Archive (ZIP)
javax.accessibility Schnittstellen zwischen Eingabegeräten und Benutzerkomponenten
javax.crypto Klassen und Schnittstellen für kryptografische Operationen
javax.crypto.interfaces Schnittstellen für Diffie-Hellman-Schlüssel
javax.crypto.spec Klassen und Schnittstellen für Schlüssel und Parameter der
Verschlüsselungsfunktionen
javax.imageio Schnittstellen zum Lesen und Schreiben von Bilddateien in
verschiedenen Formaten
javax.imageio.event Ereignisse, die während des Ladens und Speicherns bei Grafiken auftauchen
javax.imageio.metadata Unterstützung für beschreibende Metadaten in Bilddateien
javax.imageio.plugins.jpeg Klassen, die das Lesen und Schreiben von JPEG-Bilddateien unterstützen
javax.imageio.spi Einlesen und Schreiben von Bildern in Java gemäß der in
javax.imageio definierten Schnittstellen
javax.imageio.stream Unterstützt das Einlesen und Schreiben von Bildern durch die Behandlung der unteren Ebenen
javax.naming Zugriff auf Namensdienste
javax.naming.directory Zugriff auf Verzeichnisdienste, erweitert das javax.naming-Paket
Javax.naming.event Ereignisse, wenn sich etwas beim Verzeichnisdienst ändert
Javax.naming.ldap Unterstützung von LDAPv3-Operationen
Javax.naming.spi Definition für Anbieter von Namensdiensten, damit diese JNDI
nutzen können
javax.net Klassen mit einer Socket-Fabrik
javax.net.ssl SSL-Verschlüsselung
javax.print Java Print Service API
javax.print.attribute Attribute (wie Anzahl der Seiten, Ausrichtung) beim Java Print Service
javax.print.attribute.
standard
Standard für einige Drucker-Attribute
javax.print.event Ereignisse beim Drucken
javax.rmi Nutzen von RMI über das CORBA-Protokoll RMI-IIOP
javax.rmi.CORBA Unterstützt Portabilität von RMI-IIOP
javax.security.auth Framework für Authentifizierung und Autorisierung
javax.security.auth.callback Informationen wie Benutzernamen oder Passwort vom Server beziehen
javax.security.auth.kerberos Unterstützung von Kerberos zur Authentifizierung in Netzwerken
javax.security.auth.login Framework für die Authentifizierungs-Dienste
javax.security.auth.spi Schnittstelle für Authentifizierungs-Module
javax.security.auth.x500 Für X.509 Zertifikate, X.500 Principal und X500PrivateCredential
javax.security.cert Public-Key-Zertifikate
javax.sound.midi Ein- und Ausgabe, Synthetisierung von MIDI-Daten
javax.sound.midi.spi Schnittstellen für Anbieter von neuen MIDI-Diensten
javax.sound.sampled Schnittstellen zur Ausgabe und Verarbeitung von Audio-Daten
javax.sound.sampled.spi Schnittstellen für Anbieter von Audio-Konvertern, Lese- und Schreib-Routinen
javax.sql Zugriff von Java auf Datenbanken
javax.swing Definiert die einfachen Swing-Komponenten
javax.swing.border Grafische Rahmen für die Swing-Komponenten
javax.swing.colorchooser Anzeige vom JColorChooser, einer Komponente für die Farbauswahl
javax.swing.event Ereignisse der Swing-Komponenten
javax.swing.filechooser Dateiauswahldialog unter Swing: JFileChooser
javax.swing.plaf Unterstützt auswechselbares Äußeres bei Swing durch abstrakte Klassen
javax.swing.plaf.basic Besonders einfach gehaltenes Erscheinungsbild für Swing-
Komponenten
javax.swing.plaf.metal Plattformunabhängiges Standard-Erscheinungsbild von Swing-
Komponenten
javax.swing.plaf.multi Benutzerschnittstellen, die mehrere Erscheinungsbilder kombinieren
javax.swing.table Rund um die grafische Tabellenkomponente javax.swing.JTable
javax.swing.text Unterstützung für Textkomponenten
javax.swing.text.html HTMLEditorKit zur Anzeige und Verwaltung eines HTML-Texteditors
javax.swing.text.html.parser Einlesen, visualisieren und strukturieren von HTML-Dateien
javax.swing.text.rtf Editorkomponente für Texte im Rich-Textformat (RTF)
javax.swing.tree Zubehör für die grafische Baumansicht javax.swing.JTree
javax.swing.undo Undo- oder Redo-Operationen, etwa für einen Texteditor
javax.transaction Ausnahmen bei Transaktionen
javax.transaction.xa Beziehung zwischen Transactions-Manager und Resource-Manager für Java Transaction API (JTA), besonders für verteilte Transaktionen (Distributed Transaction Processing: The XA Specification)
javax.xml.parsers Einlesen von XML-Dokumenten
javax.xml.transform Allgemeine Schnittstellen zur Transformation von XML-Dokumenten
javax.xml.transform.dom Implementiert Transformationen auf der Basis von XML-Parsern nach dem DOM-Standard
javax.xml.transform.sax Implementiert Transformationen auf der Basis von XML-Parsern nach dem SAX2-Standard
javax.xml.transform.stream Transformationen auf der Basis von linearisierten XML-Dokumenten
org.ietf.jgss Framework für Sicherheitsdienste wie Authentifizierung, Integrität, Vertraulichkeit
org.w3c.dom Klassen für die Baumstruktur eines XML-Dokuments nach DOM-Standard
org.xml.sax Ereignisse, die beim Einlesen eines XML-Dokuments nach dem SAX-Standard auftreten
org.xml.sax.ext Zusätzliche Behandlungsroutinen für SAX-Ereignisse
org.xml.sax.helpers Adapterklassen und Standardimplementierungen

Daneben definieren die Pakete org.omg eine Reihe von CORBA-Diensten, die für unsere Betrachtung jedoch zu speziell sind.





Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de