Jedes Kapitel dieses Buches greift ein abgegrenztes Thema auf und entwickelt Bausteine und Leitlinien für Java-Programme mit den betreffenden Sprachmitteln.
Kapitelübersicht
Die folgende Liste gibt einen Überblick:
Ein- und Ausgabe: Ausgehend von der Ein- und Ausgabe über den Bildschirm und die Tastatur beschäftigt sich dieses Kapitel mit der Verarbeitung von Dateien. Den Abschluss machen programmgesteuerte Datei-Operationen im Filesystem.
Serialisierung: Serialisierung erlaubt es, Java-Datenstrukturen im Filesystem zu sichern und wieder zu rekonstruieren. Damit können Objekte über Programmstarts hinweg erhalten oder zwischen verschiedenen Java-Programmen ausgetauscht werden.
XML: XML ist als Datenformat heute nicht mehr wegzudenken. Java unterstützt den Umgang mit XML-Dokumenten mit vielen Bibliotheksklassen und -methoden. Dieses Kapitel zeigt, wie ein Programm XML-Dokumente lesen, prüfen, umbauen und neu erzeugen kann.
Rekursion: Rekursion beruht auf Methoden, die sich selbst aufrufen. So fremdartig diese Idee auf den ersten Blick wirkt, lassen sich damit doch für manche Probleme elegante Lösungen bauen. Welchen Preis das hat und welche Mittel von Java dabei hilfreich sind, ist der Gegenstand dieses Kapitels.
Geschachtelte Klassen: Klassendefinitionen können ineinander geschachtelt werden. Daraus ergeben sich interessante Möglichkeiten, darunter namenlose Klassen, von denen nur ein einziges Objekt existiert. Diese anonymen Klassen sind der Einstieg in die funktionale Programmierung, die derzeit rasch an Bedeutung gewinnt und in Java 8 Einzug hält.
Nebenläufigkeit: Threads sind der Schlüssel zu Java-Programmen, die mehrere Aufgaben gleichzeitig erledigen. Das eröffnet neue Möglichkeiten, bringt aber auch heikle Probleme mit sich. Dieses Kapitel stellt die fest in Java verankerten Sprachmittel vor, mit denen Nebenläufigkeit umgesetzt wird.
Netzwerkprogrammierung: Nach einer kurzen allgemeinen Einführung in Netzwerke zeigt dieses Kapitel, wie Java-Programme mit anderen Systemen über ein Netzwerk kommunizieren können. Das weist den Weg zu Java-Programmen, die ihre Dienste als Webserver zur Verfügung stellen und so mit beliebigen Browsern erreichbar sind.
Reflection: Java bietet die Möglichkeit, zur Laufzeit neue Klassen nachzuladen und deren Struktur programmatisch zu analysieren. In diesem Kapitel werden die Mittel und Wege vorgestellt, um mit dieser Technik sehr flexible Programme zu schreiben.
Annotationen: Annotationen sind formale Kommentare im Quelltext, die später wieder aufgespürt und ausgewertet werden können. Insbesondere kann der Java-Compiler mit neuen Klassen erweitert werden, die auf Annotationen reagieren und daraus beispielsweise schon während der Übersetzung neuen Quelltext generieren.
Die Auswahl der Themen ist zwangsläufig etwas subjektiv und ergibt sich aus meinen eigenen Erfahrungen.
Einige Kapitel befassen sich mit je einem konkreten Problemfeld und stellen die Art und Weise vor, wie Java damit umgeht.
Andere Kapitel behandeln die Java-spezifische Umsetzung von eher konzeptionellen Themen, die zu interessanten Lösungswegen führen.
Die restlichen Kapitel behandeln Java-spezifische Ansätze, die in dieser Form nicht in anderen Programmiersprachen zu finden sind.
Die folgende Skizze zeigt die Einordnung der Kapitel:
Kapitelabhängigkeiten
Dieses Buch ist kein fortlaufender Text, der von vorne bis hinten gelesen werden will. Die Kapitel sind weitgehend isoliert und können einzeln und in fast beliebiger Reihenfolge durchgearbeitet werden. Ein paar Abhängigkeiten sind allerdings unvermeidlich, wie die folgende Skizze zeigt: Die meisten Kapitel sind allerdings in sich zusammenhängend. Das schlägt sich in den Beispielprogrammen nieder, die meistens nach und nach ausgebaut werden.
Java-Versionen
Dieses Buch bezieht sich auf Java Version 7. Die Codebeispiele können auch auf Java-Versionen 6 und 5 zum Laufen gebracht werden, allerdings sind dazu an der einen oder anderen Stelle Anpassungen nötig.
Einige Abschnitte dieses Buches befassen sich mit geplanten Neuerungen von Java-Version 8, die voraussichtlich in der zweiten Hälfte des Jahres 2013 in einer endgültigen Fassung erscheinen wird. Trotzdem lässt sich ein Teil der neuen Sprachmittel schon vorher erproben. Anhang ▶ gibt Hinweise zu den erforderlichen Maßnahmen.