Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Vorbemerkungen


Aufbau des Buches

Dieses Buch gliedert sich in drei Teile. Der erste Teil behandelt die Sprache Java an sich. Er beginnt mit einer Darstellung über die Entwicklung von Java von den Anfängen bis heute. Den Schwerpunkt dieses Teils bildet eine Einführung in Java. Dabei wird zunächst auf die Besonderheiten von Java eingegangen, wie beispielsweise Anweisungen und Datentypen. Anschließend wird eine ausführliche Einführung in die objektorientierte Programmierung mit Java gegeben. Hierbei werden zunächst die allgemeinen Konzepte der objektorientierten Programmierung vorgestellt. Anschließend wird erläutert, wie diese Konzepte in Java realisiert sind. Den Abschluss des ersten Teils bilden Kapitel über Exceptions und Zusicherungen in Java.

Im zweiten Teil geht es um die konkrete Programmierung mit Java. Dort wird auf Aspekte wie Konstruktion von Applets und Applikationen, Oberflächenprogrammierung, Ein-/Ausgabe sowie Thread- und Grafikprogrammierung eingegangen. Sicherheitsapekte, Netzwerkprogrammierung und verteilte Programmierung mit RMI werden dort ebenfalls behandelt. In der dritten Auflage neu hinzugekommene Kapitel über Datenbankanbindung mit JDBC, Verzeichniszugriffe mit dem JNDI-API sowie die Verarbeitung von XML-Daten mit Java bilden den Abschluß des zweiten Teils.

Der dritte Teil schließlich beinhaltet eine ausführliche Referenz. Dort sind alle Klassen der in diesem Buch behandelten Pakete aus der Standard-Edition des Java-2-Entwicklungskits (J2SE) mit ihren Methoden und Elementen aufgeführt und erklärt. Aus Gründen des Umfangs ist die Referenz im gedruckten Buch auf das Paket java.lang und dessen Unterpakete beschränkt. Auf der dem Buch beiliegenden CD befindet sich eine elektronische Version des gesamten Buchs, die die komplette Referenz enthält.

Im Anhang des Buchs befindet sich eine Liste der Neuerungen, die in den jeweiligen Versionen des JDK/J2SDK eingeführt wurden. Neu hinzugekommene APIs werden dort kurz beschrieben. Weiterhin enthält der Anhang eine Beschreibung der Tools, die im JDK enthalten sind sowie ein Glossar, in dem der Leser einen Überblick über die in der Java-Programmierung übliche Terminologie erhält. Dort sind die wichtigsten Begriffe noch einmal kurz erklärt.

Auf der beiliegenden CD befindet sich eine HTML-Version des kompletten Buchs, die Beispielprogramme sowie das J2SDK 1.4.

Wer soll das Buch lesen?

Dieses Buch wendet sich an Leser, die bereits über Programmierkenntnisse verfügen (zum Beispiel in C, C++ oder einer anderen objektorientierten Sprache) und sich Java aneignen wollen. Für Leser, die mit der objektorientierten Programmierung noch nicht vertraut sind, enthält das Buch ein Kapitel, das in die Konzepte der objektorientierten Programmierung einführt.

Es eignet sich nicht für Leser, die noch kein Grundlagenwissen in der Programmierung haben, da es kein Step-by-Step-Lehrbuch ist.

Für Leser, die bereits in Java programmieren, kann es als detailreiches Nachschlagewerk dienen. Außerdem können sich diese Leser in den zahlreichen Beispielen Anregungen für die eigene Arbeit holen.

Wie soll das Buch gelesen werden?

Java-Einsteiger sollten sich zunächst mit dem Inhalt von Kapitel 2 vertraut machen, bevor sie sich mit den anderen Teilen des Buchs befassen. Dort wird ein Überblick über die grundlegenden Sprachelemente von Java gegeben. Auch mit den in Kapitel 4 dargestellten Sachverhalten sollte diese Lesergruppe zumindest in Grundzügen vertraut sein, bevor sie sich mit dem zweiten Teil des Buchs befaßt.

In Kapitel 3 werden die allgemeinen Konzepte der objektorientierten Programmierung beschrieben. Es ist für Leser gedacht, die mit der objektorientierten Programmierung noch nicht voll vertraut sind oder Kenntnisse auffrischen wollen.

Leser, die C++ beherrschen, sollten im Kapitel 4 einsteigen, nachdem sie sich einen Überblick über Kapitel 2 verschafft haben. In Kapitel 4 wird konkret auf die objektorientierte Programmierung in Java eingegangen.

Die Leser, die mit Java vertraut sind, sollten sich zunächst den Anhang A anschauen. Dort sind die verschiedenen Neuerungen im Überblick aufgeführt, wobei jeweils auf die Stellen verwiesen wird, an denen die einzelnen Neuerungen im Buch detailliert beschrieben werden. Diese Lesergruppe kann ihre Kenntnisse im zweiten Teil des Buches vertiefen. Sie findet aber auch im ersten Teil Antworten auf Detailfragen wie Wertebereich von Datentypen oder die Funktionsweise von Zusicherungen.

Der dritte Teil wird wohl für alle Leser relevant sein. Dort befindet sich eine Referenz der Pakete von J2SE.

Typographie und Terminologie

Klassennamen, Datentypen und Schlüsselwörter sowie die Auszüge aus den Beispielprogrammen sind in Schreibmaschinenschrift gesetzt.

Die zahlreichen englischen Begriffe der Java-Programmierung (wie Exception oder Interface) wurden weitestgehend belassen und nicht übersetzt, da dies unserer Erfahrung nach dem unter Entwicklern üblichen Sprachgebrauch am ehesten entspricht. Außerdem können »Doppelbelegungen« auf diese Weise vermieden werden. So ist der Begriff »Schnittstelle« in der Informatik recht weit gefasst, mit »Interface« meinen wir dagegen klar das Java-Sprachkonstrukt.

In Fällen, in denen dasselbe Wort für einen Begriff und eine Java-Klasse verwendet wird, wird die Differenzierung über die Typographie vorgenommen: Button bezeichnet ein Element einer grafischen Oberfläche, Button die Klasse, mit der es in Java realisiert wird.

Bei Verben wurde versucht, möglichst natürliche und angemessene Übersetzungen zu finden. Exceptions werden bei uns nicht geworfen (throw) und gefangen (catch), sondern ausgelöst (im Sinne von Ausnahmezustand auslösen) und abgefangen (wenn man etwas abfängt, kann es seinen ursprünglichen Weg nicht mehr fortsetzen, so wie man bei einer Exception unterbindet, daß sie den Aufrufstack weiter hinaufpropagiert wird).

In der Terminologie der objektorientierten Programmierung gibt es eine Vielfalt von Begriffen für dieselben Gegenstände. So werden die Begriffe Klasse und Objekttyp synonym verwendet, wir benutzen das Wort Klasse. Objekte werden von einer Klasse erzeugt. Ein Objekt nennen wir auch ein Exemplar seiner Klasse. In der ersten Auflage verwendeten wir hier das Wort Instanz, das in anderen Büchern zwar häufig anzutreffen ist, aber strenggenommen eine unangemessene Übersetzung des englischen »instance« ist. Der Begriff Exemplar trifft die Bedeutung ungleich besser.

Die auf Objekten ausführbaren Operationen nennen wir Methoden. In der C++-Literatur wird hier meist von Elementfunktionen oder Member-Funktionen gesprochen. Die Datenbehälter einer Klasse nennen wir Datenelemente, bei anderen Autoren findet man auch die Begriffe Feld oder Attribut. Unter den Bestandteilen einer Klasse verstehen wir deren Methoden und Datenelemente. Im Gegensatz zu C und C++ gibt es in Java keine Trennung zwischen der Deklaration und der Definition einer Klasse oder einer Variable. Wir verwenden die Begriffe Deklaration, Definition und Vereinbarung synonym.

Teilweise wird in der Literatur das Wort Feld als deutscher Begriff für Array verwendet. Wir haben den Begriff Array belassen, da es uns gebräuchlicher erscheint.

Unter einer Applikation verstehen wir ein in Java geschriebenes Standalone-Programm. Applikationen sind von den Applets zu unterscheiden, die in Web-Browsern ablaufen. Wenn ein bestimmter Sachverhalt sowohl für Applets als auch für Applikationen gilt, wird von Programmen gesprochen.

Hinsichtlich der »Geschlechterproblematik« haben wird uns aus Gründen der Lesbarkeit und der Lesegewohnheit dazu entschieden, stets die dritte Person Singular in der männlichen Form zu verwenden. Die weiblichen Varianten mögen gegebenenfalls als geschrieben angesehen werden.

[1.4]Bei neuen Features ist so wie bei diesem Absatz stets am Rand angemerkt, in welcher Version sie eingeführt wurden. Wenn eine Klasse oder eine Methode mittlerweile wieder verworfen wurde, ist dies ebenfalls vermerkt. In der Referenz ist bei jeder Klasse angegeben, seit welcher Version sie verfügbar ist.

Im Laufe der Entwicklung des JDK wurden nicht nur neue Klassen, sondern auch Erweiterungen an der Sprache selbst eingeführt. Diese Erweiterungen wurden aber ohne Änderungen oder Ergänzungen am Bytecode implementiert, so daß der erzeugte Bytecode auch in älteren Virtual Machines lauffähig ist. Java-Programme, die diese Erweiterungen nutzen, erfordern zum Übersetzen zwar einen neueren Compiler, der erzeugte Bytecode ist jedoch abwärtskompatibel. [1.1]Diese abwärtskompatiblen Erweiterungen sind mit dem Symbol v neben der Versionsnummer gekennzeichnet.

Seit Java 1.1 wurden verschiedene Methoden oder auch ganze Klassen als »deprecated« gekennzeichnet, was bedeutet, daß der betreffende Gegenstand zwar weiterhin unterstützt wird, aber daß von seiner Verwendung abgeraten wird. Hierfür verwenden wir den Ausdruck »verworfen«.

Vorbemerkungen zur dritten Auflage

In der dritten Auflage wurde das Buch vollständig überarbeitet und auf den Stand der Java-2-Plattform, Version 1.4 aktualisiert. Aus Gründen des Umfangs wurde der Großteil der Referenz auf die CD ausgelagert. So wurde Raum für komplett neue Kapitel über JDBC, RMI und die Verarbeitung von XML-Daten mit Java geschaffen. Das Kapitel über Oberflächenprogrammierung behandelt jetzt vorrangig Swing anstelle des AWT und ist daher deutlich umfangreicher. Mit diesen Neuerungen deckt das Buch nunmehr das komplette Spektrum der Java-2-Plattform in der Standard-Edition ab.

Ganz neu hinzugekommen sind zahlreiche Abschnitte über Features, die in Version 1.3 bzw. 1.4 eingeführt wurden, unter anderem: Zusicherungen (Assertions), neue Grafik-I/O-Features, Logging, die Preferences-API, die Authentifizierungsschnittstelle JAAS, Deployment-Mechanismen und vieles mehr.

Bei der Überarbeitung wurde wie in der zweiten Auflage bei neuen Features stets angemerkt, in welcher Version sie eingeführt wurden. Dies ist für die Praxis sehr wichtig, weil nicht immer auf die neuste Version der Laufzeitumgebungen zurückgegriffen werden kann.

Da die beiliegende CD die kompletten Beispielprogramme enthält, sind im Buch nur die wesentlichen Abschnitte abgedruckt. Darüber hinaus befindet sich auf der CD eine HTML-Version des kompletten Buchs.

Updates und Ergänzungen werden im HTML-Format unter
Verweishttp://www.dpunkt.de/java zur Verfügung gestellt werden.

Danksagungen

Die Autoren möchten sich ausdrücklich bei all denen bedanken, die im Laufe der mittlerweile siebenjährigen Geschichte dieses Buchs an der Entstehung mitgewirkt haben:

Stefan Strobel, der der Initiator des Buchs war, Volker Elling, Rainer Maurer, Falk Schubert, Julia Thomä, Astrid Corinna Wolff, Timo Baumann und Steffen Gundel für die Durchsicht des Manuskripts und schließlich Kilian Lorenz für sein Managerspiel. Er hat auch wesentlichen Anteil an der Gestaltung der HTML-Version.

An dieser Stelle möchten wir uns auch beim dpunkt-Team bedanken, insbesondere bei unserem Lektor René Schönfeldt, der stets die richtige Mischung aus Nachdruck und Verständnis fand. Michael Barabas, Gerhard Rossbach und René Schönfeldt gilt Dank dafür, dass sie das Copy-Editing eines Materials mit noch nie dagewesenem Umfang kurzerhand zur »Chefsache« erklärten und eigenhändig durchführten. Auch möchten wir an dieser Stelle die Leser erwähnen, die uns durch ihre Hinweise und Vorschläge halfen, das Buch in der dritten Auflage erneut zu verbessern. Wir möchten alle Leser ausdrücklich dazu ermuntern, uns Kritik jeglicher Art zukommen zu lassen (java@dpunkt.de).

Ein Buchprojekt, zumal wenn es einen Umfang wie das vorliegende Werk hat, ist meist mit drastischen Einschnitten im Privatleben verbunden. Ein besonderer Dank gilt daher schließlich Barbara Kemper, Astrid Corinna Wolff und Imke Martsfeld dafür, dass sie über Monate hinweg Geduld und Verständnis bewahrten und uns moralisch unterstützten.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.