Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 8 Die Funktionsbibliothek
gp 8.1 Die Java-Klassenphilosophie
gp 8.1.1 Übersicht über die Pakete der Standardbibliothek
gp 8.2 Wrapper-Klassen
gp 8.2.1 Die Character-Klasse
gp 8.2.2 Die Boolean-Klasse
gp 8.2.3 Die Basisklasse Number für numerische Wrapper-Objekte
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.3.3 Einen HTML-Browser unter Windows aufrufen
gp 8.4 Klassenlader (Class Loader)
gp 8.4.1 Woher die kleinen Klassen kommen
gp 8.4.2 Drei Typen von Klassenladern
gp 8.4.3 Der java.lang.ClassLoader
gp 8.4.4 Hot Deployment mit dem URL-ClassLoader
gp 8.4.5 Das jre/lib/endorsed-Verzeichnis
gp 8.4.6 Wie heißt die Klasse mit der Methode main()?
gp 8.5 Zeitmessung und Profiling
gp 8.6 Compilieren von Klassen
gp 8.6.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)


Galileo Computing

8.1 Die Java-Klassenphilosophiedowntop

Eine Programmiersprache besteht nicht nur aus einer Grammatik, sondern, wie im Fall von Java, aus einer Programmierbibliothek. 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 Standardbibliothektoptop

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.


java.applet Stellt Klassen für Java-Applets bereit, damit diese auf Web-Seiten 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 Server-Seite 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 Authentifizierungsdienste
javax.security.auth.spi Schnittstelle für Authentifizierungsmodule
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 Schreibroutinen
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 Standarderscheinungsbild 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

Tabelle 8.1 Java 2-Plattform-Pakete zum SDK 1.4

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





Copyright (c) Galileo Press GmbH 2004
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