20 Jahre Erfahrung FreeCall 0800 tutegos

Java ist auch eine Insel / Java SE Standard-Bibliothek

Aus den Begleitunterlagen von Christian Ullenbooms Java-Seminaren sind zwei Java-Bücher entstanden:

  • Das Standardwerk zur Java-Programmierung, aktuell zu Java 14‹ (ISBN 3836277379) ist der 1. Band und gibt einen fundierten Einstieg in die Sprache und liefert eine Übersicht über die Java SE-Bibliotheken. Das Buch richtet sich an Interessenten, die das Prinzip der imperativen (gerne auch der objektorientierten) Programmierung kennen, aber neu in Java sind. Wer Java als erste Programmiersprache lernt und vorher noch nie programmiert hat, wird mit dem Buch vielleicht nicht glücklich werden. Die Insel ist kein klassisches Einführungsbuch in die Informatik und Programmierung im Allgemeinen und beschreibt nicht, was Software ist und wie ein Rechner funktioniert. Es handelt sich ebenfalls nicht um ein typisches Uni-Lehrbuch, das auf theoretische Dinge wie Turingmaschinen oder Entscheidbarkeit eingeht. Es ist für ›Industrieprogrammierer‹ geschrieben, die mit Java wirklich entwickeln wollen. Zwar finden sich auch für Informatiker immer wieder einige theoretische Blöcke, aber sie stehen in der Insel nicht im Vordergrund. Wer das erwartet, sollte besser einen Blick auf die Java Language Specification werfen.
  • Java SE 9-Standard-Bibliothek: Das Handbuch für Entwickler‹ (ISBN 978-3836258746) richtet den Fokus auf die Java SE-Standard-Bibliotheken. Der 2. Band enthält eine kurze Zusammenfassung der Neuerungen aus Java 9 und setzt die Standard-Bibliotheken in den Mittelpunkt. Während der erste Band der ›Sprachband‹ (imperative Konzepte, OOP, Pattern, Generics) plus ein Teil Einführung in die Bibliotheken ist, enthält der 2. Band immer die Sprachneuerungen der jeweiligen Version (aktuell Java 9) und behandelt sonst ausschließlich die Java SE-Bibliotheken. Durch die Wiederholung der Neuerungen müssen sich fortgeschrittene Entwickler den 1. Band nicht kaufen, denn die Sprach-Änderungen von Java 8 bzw. Java 9 stehen im ersten Kapitel. Anders gesagt: Anstatt sich als fortgeschrittener Entwickler immer die alte dicke Insel mit einer Einführung in Schleifen etc. zu kaufen, bei der 600 Seiten eben bekannt sind, bekommt man nun mit dem 2. Band immer jeweils die Sprachänderungen und sehr detailliert alle Java SE-Bibliotheken.

Christian Ullenboom ist es wichtig, nicht die APIs abzuschreiben und zu übersetzen, sondern er versucht auf die Implementierung zu schauen und die Philosophie der Sprache zu vermitteln. So erfährt der Leser auch etwas über Design-Patterns, Optimierung und praktische objektorientierte Programmierung. Regelmäßig fließen neue Entwicklungen, Tipps und Tricks aus Java-FAQs, Stack Overflow und Code-Books in die beiden Inseln ein, um wirklich das abzudecken, was echte Entwickler im Alltag benötigen.

Amazon Wenn Ihnen das Buch gefällt, freut sich Christian Ullenboom über eine nette Bewertung bei Amazon Band 1, Band 2. Oder werden Sie Fan auf Facebook! Oder wie wäre als Dankeschön eine Installation von DropBox? Das schenkt ihm ein paar MiB.

Insel-Entwicklung

Seit Ende 2021 ist die 16. Auflage vom 1. Band (kurz B1V16) im Handel und die 3. Auflage vom 2. Band (kurz B2V3) erhältlich bei Rheinwerk Verlag (ehemals Galileo Computing). Der Weblog [RSS] informiert regelmäßig über Neuigkeiten und Buch-Updates.

Auflage Band 1Auflage Band 2Geschichte
16Die Auflage enthält alle Neuerungen von bis Java 17.  Vom 2. Band ist bisher keine Neuauflage geplant.
15Die Auflage enthält die Neuerungen von Java 12, Java 13 und Java 14.
14Die Auflage enthält die Neuerungen von Java 10 und Java 11.
133Java 9 wurde im September 2017 veröffentlicht. Die Sprach- und Bibliotheksneuerungen sind eher übersichtlich, radikal neu ist das Modulsystem. Die Beispiele basieren auf den Möglichkeiten von Java 8, wie etwa Lambda-Ausdrücken.
12Update des erstes Bandes im 1. Quartal 2016. Version ist für frei online.
112Java 8 wurde am 18. März 2014 freigegeben, im Juli 2014 folgten die neuen Bände. Alle Code-Beispiele basieren konsequent auf Java 7 bzw. Java 8 bei den neuen Features.
101Ende 2011. Das erste Mal gibt es Band 1 (die Sprache) und Band 2 (die Bibliotheken). Die Bände beschreiben Java 7.
9Release 2010. Updates, Kapitelverschiebungen und bereitet auf Java 7 vor.
8Die Auflage aus Januar 2009 enthält in erster Linie Korrekturen und ein paar neue Grafiken. Weiterhin neue Abschnitte zu regulären Ausdrücken und der JAXB-API.
7Veröffentlichung im November 2007. In erster Linie Korrekturen und eine Kapitelverschiebung.
6Nach dem Sun Java 6 (JDK 6) im Dezember 2006 veröffentlicht hat, gibt es auch eine neue Version der Insel mit vielen Neuerungen wie Web-Services, JavaScript-API, Tray, Splash-Screen, RowSorter, File-Erweiterungen, Compiler API, SwingWorker, Console.
5Im September 2005 fertig gestellt. Die Beispiele wurden noch mehr auf Java 5 ausgelegt und Abschnitte erweitert und durch neue APIs umsortiert.
4Die vierte Auflage kam Ende 2004 und basierte weitestgehend auf Java 5.
3.2Die dritte Auflage wurde um neue Beispiele erweitert und fand Anfang 2004 den Weg in die Regale. Die ISBN-Nummer blieb die gleiche. Die OOP-Beispiele wurden von Socken auf Diskotheken/Kirchen umgestellt.
3Die 3. Auflage im Hardcover mit neuem Seitenformat ist Juni 2003 in den Handel gekommen.
2Im September 2002 gab es die zweite Auflage und 1.000 zusätzlich gedruckte Ausgaben einer Studentenversion waren schnell vergriffen.
1Im Dezember 2001 wurde die Insel nach dreijähriger Arbeit mit mehr als 1.300 Seiten von Galileo Computing veröffentlicht.

Ende 2001 wurde die 1. Auflage der Insel veröffentlicht. Seit dem gibt es alle 1 bis 2 Jahre ein Update, welches auch immer die neuen Java-Versionen beschreibt. Band 1 Auflage 15 (B1V15) und auch Band 2 Auflage 1 (B2V1) sind online. Allerdings sind wegen der unsicheren Rechtslage nur die Vorgängerversionen online, die auf Java 14 bzw. Java 7 basieren.

Wie geht's besser?

Da so ein Buch eine dynamische Sache ist, erhofft sich Christian Ullenboom (E-Mail) von seinen Lesern Vorschläge, wie man die Bücher noch besser gestalten kann:

  • Korrekturvorschläge bei Rechtschreibfehlern oder Satzfehlern geben. Wenn man einen Satz schon zweimal lesen muss ist das ein Zeichen für unklaren Stil.
  • Hinweise auf unsaubere Beschreibungen. Ein Begriff ist schwammig erklärt oder Zusammenhänge sind unklar.
  • Didaktisches Fehlkonzept aufzeigen. Etwas wird genutzt, aber später erst erklärt. Den Stoff zu sequenzieren ist eine große Herausforderung. Tausende Konzepte müssen in Reihe gelegt werden. Datenstrukturen werden schon kurz bei 1:n-Assoziationen vorgestellt, Schnittstellen mogeln sich rein, werden aber erst später wirklich eingeführt. Es gibt noch mehr solcher Stellen. Kapitel 4 etwa bei den Zeichenketten greift auf Ausnahmen vor und IO-Klassen, das Exception-Kapitel ebenfalls auf IO. In jeder Auflage schieben sich Kapitel hin und her, um die Vorgriffe zu minimieren. Das Problem ist aber fast unlösbar, weil es immer rekursive Abhängigkeiten gibt. Erklärt man Wrapper-Klassen zuerst, referenziert das Comparable, erklärt man Comparable/Comparator braucht man schnell Wrapper und Generics sowieso. Man dreht sich im Kreis.
  • Was braucht man im Alltag, fehlt aber in der Insel? Christian Ullenboom ist immer auf der Suche nach Inhalten, die für die nächsten Auflagen aufgenommen werden sollen.
  • Trotz Aufspaltung in zwei Bände ist die Insel immer noch zu dick für spezielle Abschnitte, was zur Auslagerung einigen Passagen in den Java-Blog führte. Finden Leser einige Abschnitte zu abgedreht, ist das auch eine Meldung wert.

Errata

Kapitel 7: Bei System.out.println( ((PizzaEater) this).consumptionTime ); darf nicht 3000 stehen, sondern 900, wie auch im Listing.

Code

Alle Buchbeispiele gibt es als Download; das hilft den Code aus den Büchen selbst nachvollziehen und ändern zu können. Nach dem Auspacken kann das Projekt direkt in IntelliJ mit File > Open... geöffnet werden. Der Unterordner Inselprogramme ist ein Maven-Projekt, das jede aktuelle Java-IDE importieren kann.

Danke!

Schon viele nette Menschen haben mir Hinweise geschickt; mein Dankeschön geht insbesondere an folgende Fehlermelder und Korrekteure.

Bestverkaufte Computing-Buch 2013

Laut Media Control ist Christian Ullenbooms Java-Buch das bestverkaufte Computing-Buch des Jahres 2013. Ausgewertet wurden alle Titel zu Computing-Themen (Programmierung, Netze, Server, Web) aller Verlage. Danke!

Weblog

Im Insel-Blog schreibt der Autor über aktuelle Entwicklungen in Java, Softwareentwicklung im Allgemeinen, Open-Source, JavaScript, neuen IDE-Erweiterungen und Neuerungen in den Java-Büchern.

Weblog von Christian Ullenboom» [RSS]