Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Generics<T>
8 Äußere.innere Klassen
9 Besondere Klassen der Java SE
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Bits und Bytes und Mathematisches
13 Datenstrukturen und Algorithmen
14 Threads und nebenläufige Programmierung
15 Raum und Zeit
16 Dateien, Verzeichnisse und Dateizugriffe
17 Datenströme
18 Die eXtensible Markup Language (XML)
19 Grafische Oberflächen mit Swing
20 Grafikprogrammierung
21 Netzwerkprogrammierung
22 Verteilte Programmierung mit RMI
23 JavaServer Pages und Servlets
24 Datenbankmanagement mit JDBC
25 Reflection und Annotationen
26 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
geb., mit DVD
1482 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1506-0
Pfeil 11 Die Klassenbibliothek
  Pfeil 11.1 Die Java-Klassenphilosophie
    Pfeil 11.1.1 Übersicht über die Pakete der Standardbibliothek
  Pfeil 11.2 Klassenlader (Class Loader)
    Pfeil 11.2.1 Woher die kleinen Klassen kommen
    Pfeil 11.2.2 Setzen des Klassenpfades
    Pfeil 11.2.3 Die wichtigsten drei Typen von Klassenladern
    Pfeil 11.2.4 Die Klasse java.lang.ClassLoader *
    Pfeil 11.2.5 Hot Deployment mit dem URL-Classloader *
    Pfeil 11.2.6 Das Verzeichnis jre/lib/endorsed *
  Pfeil 11.3 Die Utility-Klasse System und Properties
    Pfeil 11.3.1 Systemeigenschaften der Java-Umgebung
    Pfeil 11.3.2 line.separator
    Pfeil 11.3.3 Property von der Konsole aus setzen *
    Pfeil 11.3.4 Umgebungsvariablen des Betriebssystems *
  Pfeil 11.4 Einfache Benutzereingaben
    Pfeil 11.4.1 Grafischer Eingabedialog über JOptionPane
    Pfeil 11.4.2 Geschützte Passwort-Eingaben mit der Klasse »Console« *
  Pfeil 11.5 Ausführen externer Programme *
    Pfeil 11.5.1 »ProcessBuilder« und Prozesskontrolle mit Process
    Pfeil 11.5.2 Einen Browser, E-Mail-Client oder Editor aufrufen
  Pfeil 11.6 Zum Weiterlesen

Was wir brauchen, sind ein paar verrückte Leute; seht euch an, wohin uns die Normalen gebracht haben. – George Bernard Shaw (1856–1950)

11 Die Klassenbibliothek


Rheinwerk Computing - Zum Seitenanfang

11.1 Die Java-Klassenphilosophie  Zur nächsten ÜberschriftZur vorigen Überschrift

Eine Programmiersprache besteht nicht nur aus einer Grammatik, sondern, wie im Fall von Java, auch 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 vom Betriebssystem abhängig sind, lassen sich überall gleich anwenden, doch spätestens bei grafischen Oberflächen ist Schluss. Dieses Problem ergibt sich in Java seltener, weil sich die Entwickler große Mühe gaben, alle wichtigen Methoden in wohlgeformten Klassen und Paketen unterzubringen. Diese decken insbesondere die zentralen Bereiche Datenstrukturen, Ein- und Ausgabe, Grafik- und Netzwerkprogrammierung ab.


Rheinwerk Computing - Zum Seitenanfang

11.1.1 Übersicht über die Pakete der Standardbibliothek  topZur vorigen Überschrift

Die Java 6-Klassenbibliothek bietet genau 203 Pakete. [Unsere Kollegen aus der Microsoft-Welt müssen eine dickere Pille schlucken, denn .NET 4 umfasst 408 Pakete (Assemblies genannt). Dafür enthält .NET aber auch Dinge, die in der Java-Welt der Java EE zuzuordnen sind. Aber auch dann liegt .NET immer noch vorne, denn Java EE 6 deklariert gerade einmal 117 Pakete. ] Die wichtigsten davon fasst die folgende Tabelle zusammen:


Tabelle 11.1  Wichtige Pakete in Java 6

Paket Beschreibung

java.awt

Das Paket AWT (Abstract Windowing Toolkit) bietet Klassen zur Grafikausgabe und zur Nutzung von grafischen Bedienoberflächen.

java.awt.event

Schnittstellen für die verschiedenen Ereignisse unter grafischen Oberflächen

java.io

Möglichkeiten zur Ein- und Ausgabe. Dateien werden als Objekte repräsentiert. Datenströme erlauben den sequenziellen Zugriff auf die Dateiinhalte.

java.lang

Ein Paket, das automatisch eingebunden ist und unverzichtbare Klassen wie String-, Thread- oder Wrapper-Klassen enthält

java.net

Kommunikation über Netzwerke. Klassen zum Aufbau von Client- und Serversystemen, die sich über TCP beziehungsweise IP mit dem Internet verbinden lassen

java.text

Unterstützung für internationalisierte Programme. Behandlung von Text, Formatierung von Datumswerten und Zahlen

java.util

Datenstrukturen, Raum und Zeit sowie Teile der Internationalisierung, Zufallszahlen

javax.swing

Swing-Komponenten für grafische Oberflächen. Das Paket besitzt diverse Unterpakete.


Als Entwickler ist es unumgänglich für die Details die JavaDoc http://download.oracle.com/javase/6/docs/api/ zu studieren.

Offizielle Schnittstelle (java und javax-Pakete)

Das, was die JavaDoc dokumentiert, bildet den erlaubten Zugang zum JDK. Die Typen sind für die Ewigkeit ausgelegt, sodass Entwickler darauf zählen können, auch noch in 100 Jahren ihre Java-Programme ausführen zu können. Doch wer definiert die API? Im Kern sind es vier Quellen:

  • Oracle-Entwickler setzen neue Pakete und Typen in die API.
  • Der Java Community Process (JCP) beschließt eine neue API. Dann ist es nicht nur Oracle allein, sondern eine Gruppe, die eine neue API erarbeitet und die Schnittstellen definiert.
  • Die Object Management Group (OMG) definiert für CORBA eine API.
  • Das World Wide Web Consortium (W3C) gibt eine API etwa für XML-DOM vor.

Die Merkhilfe ist, dass alles, was mit java oder javax beginnt, eine erlaubte API darstellt, und alles andere zu nicht portablen Java-Programmen führen kann. Es gibt weiterhin Klassen, die unterstützt werden, aber nicht Teil der offiziellen API sind. Dazu zählen etwa diverse Swing-Klassen für das Aussehen der Oberfläche.


Hinweis Die Laufzeitumgebung von Oracle liefert noch über 3.000 Klassendateien [Das Buch »Java Secrets« von Elliotte Rusty Harold geht den Klassen nach, ist aber schon älter.] in den Paketen sun und sunw aus. Diese internen Klassen sind nicht offiziell dokumentiert, aber zum Teil sehr leistungsfähig und erlauben selbst direkten Speicherzugriff oder können Objekte ohne Standard-Konstruktor erzeugen:

Listing 11.1  com/tutego/insel/sun/UnsafeInstance.java, Ausschnitt

Field field = Unsafe.class.getDeclaredField( "theUnsafe" );
field.setAccessible( true );
sun.misc.Unsafe unsafe = (sun.misc.Unsafe) field.get( null );
File f = (File) unsafe.allocateInstance( File.class );
System.out.println( f.getPath() );                          // null

File hat keinen Standard-Konstruktor, nicht einmal einen privaten. Diese Art der Objekterzeugung kann bei der Deserialisierung (siehe dazu Kapitel 17, »Datenströme«) hilfreich sein.


Standard Extension API (javax-Pakete)

Einige der Java-Pakete beginnen mit javax. Dies sind ursprünglich Erweiterungspakete (extensions), die die Kern-Klassen ergänzen sollten. Im Laufe der Zeit sind jedoch viele der früher zusätzlich einzubindenden Pakete in die Standard-Distribution gewandert, sodass heute ein recht großer Anteil mit javax beginnt, aber keine Erweiterungen mehr darstellt, die zusätzlich installiert werden müssen. Sun wollte damals die Pakete nicht umbenennen, um so eine Migration nicht zu erschweren. Fällt heute im Quellcode ein Paketname mit javax auf, ist es daher nicht mehr so einfach zu entscheiden, ob eine externe Quelle mit eingebunden werden muss beziehungsweise ab welcher Java-Version das Paket Teil der Distribution ist. Echte externe Pakete sind unter anderem:

  • Enterprise/Server API mit den Enterprise JavaBeans, Servlets und JavaServer Faces
  • Java Persistence API (JPA) zum dauerhaften Abbilden von Objekten auf (in der Regel) relationale Datenbanken
  • Java Communications API für serielle und parallele Schnittstelle
  • Java Telephony API
  • Sprachein-/-ausgabe mit der Java Speech API
  • JavaSpaces für gemeinsamen Speicher unterschiedlicher Laufzeitumgebungen
  • JXTA zum Aufbauen von P2P-Netzwerken


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Java SE Bibliotheken






 Java SE Bibliotheken


Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Einstieg in Eclipse






 Einstieg in
 Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in
 Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2011
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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de