15 Jahre Erfahrung FreeCall 0800 tutegos

Java ist auch eine Insel / Java SE 8 Standard-Bibliothek

Aus einer Begleitunterlage meiner Java-Seminare sind zwei Java-Bücher entstanden:

  • Der erste Band ›Java ist auch eine Insel. Einführung, Ausbildung, Praxis‹ (ISBN 978-3-8362-2873-2) gibt einen fundierten Einstieg in die Sprache und liefert einen Übersicht über die Java SE-Bibliotheken.
  • Den Fokus auf die Java SE-Standard-Bibliotheken liefert der 2. Band, ›Java SE 8 Standard-Bibliothek. Das Handbuch für Java-Entwickler‹ (ISBN 978-3-8362-2874-9) (ehemals Java 7 – Mehr als eine Insel. Das Handbuch zu den Java SE Bibliotheken). Das Buch enthält ebenfalls eine Zusammenfassung der Neuerungen aus Java 8 (bzw. Java 7).

Seit Ende 2011 ist die 10. Auflage vom 1. Band im Handel erhältlich und die 1. Auflage vom 2. Band. Die nächste Version ist Q2 2014 mit einem Update auf Java 8 geplant.

Der Weblog [RSS] informiert regelmäßig über Neuigkeiten und Buch-Updates. Die 11. Auflage ist in Arbeit und integriert Sprach- und Bibliotheksänderungen aus Java 8, wie etwa Lambda-Ausdrücke.

Amazon Wenn Ihnen das Buch gefällt, wäre ich über eine nette Bewertung bei Amazon dankbar. Oder werde Fan auf Facebook! Oder wie wäre es als Dankeschön eine Installation von DropBox? Das schenkt mir ein paar MiB.

Philosophie der beiden Bände

Die Insel (Band 1) richtet sich an Interessenten, die das Prinzip der imperativen (gerne auch der objektorientierten) Programmierung kennen, aber noch nicht in Java programmiert haben. 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 arbeiten wollen. (Also ist das Buch nicht nur für diejenigen, die beim Brennball in der Schule immer als Letztes gewählt wurden.) 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. Mir ist es wichtig, nicht die APIs abzuschreiben und zu übersetzen, sondern ich versuche 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 nehme ich Tipps und Tricks aus Java-FAQs und Code-Books in die Insel auf, um wirklich das abzudecken, was ein echter Entwickler im Alltag benötigt.

Der erste Band ist der „Sprachband“ (imperative Konzepte, OOP, Pattern, Generics) plus einen Teil Einführung in die Bibliotheken. Der 2. Band behandelt immer die Sprachneuerungen der jeweiligen Version (aktuell Java 7) aber sonst ausschließlich die Java SE-Bibliotheken.

Der fortgeschrittene Entwickler muss sich den 1. Band nicht mehr kaufen, denn alles steht für ihn im 2. Band, auch die Einführung in Java 7. Den 1. Band braucht man nur als Java-Einsteiger.

Herdt und Galileo-Computing

Der Herdt-Verlag veröffentlicht auf der Basis der Insel Schulungsmaterialien mit ausgewählten Kapiteln der Insel:

Die Vergangenheit

Ende 2001 wurde die 1. Auflage der Insel veröffentlicht. Seit dem gibt es einmal im Jahr ein Update, welches auch immer die neuen Java-Versionen beschreibt. 2011 wurde der monolithische Wälzer in zwei Bände zerlegt. Die Aufspaltung ist nötig geworden, da die Anzahl der Themen immer größer wurde und natürlich in der Zukunft weiterhin zunehmen wird. Vorher mussten wegen der Fülle immer wieder Abschnitte und ganze Kapitel entfernt werden. Die Insel ist nie als "immer-1400-Seiten-Buch" gedacht gewesen, sondern als Buch, was die Java-Landschaft sehr detailliert abbildet. Wenn man ein Buch mit 2000 Seiten fertigen könnte, wäre das natürlich eine bessere Lösung. Bei einem Band zu bleiben, und immer wieder Kapitel oder Abschnitte zu entfernen, war keine dauerhafte Lösung.

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. In der 1. Auflage ist der Anteil der Libs schon deutlicher knapper (auch wenn man das auf den ersten Blick nicht sieht) und er wird in Zukunft immer weiter schrumpfen. Mit Lambda-Ausdrücken und einen Einstieg in funktionaler Programmierung gehen von den Libs wieder einige Seiten weg.

Die aktuellen Auflagen sind Ende 2011 im Handel und natürlich ist Band 1 online und auch Band 2.

Auflage Band 1Auflage Band 2Geschichte
112Ist in Arbeit. Java 8 wurde am 18. März 2014 freigegebe, ein paar Wochen später wird es eine neue Ausgabe geben. Eine Vorschau auf die Java 8-Eigenschaften und Kapitel gibt es im Blog. Alle Code-Beispiele basieren konsequent auf Java 7 bzw. Java 8 bei den neuen Features.
101Aktuelle Auflage von Ende 2011. Das erste Mal gibt es Band 1 (die Sprache) und Band 2 (die Bibliotheken). Die Bände beschreiben auf 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.

Die Zukunft

Sowohl die Online- als auch die Printversion des Java-Buchs sind stets in Überarbeitung, um sie parallel zu den Neuerungen der Programmiersprache und den Tools weiter zu entwickeln. 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.

Wie geht's besser?

Da so ein Buch eine dynamische Sache ist, erhoffe ich von meinen Lesern, Vorschläge, wie man das Tutorial noch besser gestalten kann. Ich bin immer auf der Suche nach Inhalten, die für die nächsten Auflagen aufgenommen werden sollen. Jeder Leser kann helfen, das Buch zu verbessern:

  • 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.)

Leider kommen immer wieder Fehler in den Text hinein. Das liegt seltener an dem Fall, dass ich kein Deutsch kann — na ja, vielleicht auch das —, sondern viel mehr daran, dass ich schnell schreibe und mich eher auf Inhalt als auf Wörter konzentriere. Wenn der Fehler nicht gerade durch die automatische Rechtschreibkorrektur erkannt wird und beim zweiten Lesen mir nicht auffällt, und auch nicht dem Lektorat, ist die Wahrscheinlichkeit für einen Fehler in der Endversion groß. Zu meinen Lieblingen gehört dabei ein Vertauschen von wir und wie. Die Hinweise empfange ich gerne per E-Mail.

 Den Stoff zu sequenzieren ist eine große Herausforderung. Tausende Konzepte müssen in Reihe gelegt werden. Datenstrukturen werden schon kurz vorgestellt bei 1:n-Assoziationen, aber Schnittstellen mogeln sich da sein 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. Bei inneren Klassen sehe ich kein Vorgriff. In jeder Auflage der Insel schiebe ich Kapitel hin und her, und für die kommende Version wird auch das String-Kapitel gespalten, sodass Fortgeschrittenes in Band 2 geht. 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 Wrapper. Man dreht sich im Kreis. Falls ich Konzepte nutze, aber noch nicht einmal einen Verweis lege, bitte melden.

Leser, die einen Fehler in der HTML-Version finden, können mir leicht weiterhelfen. Markiere einfach die Zeile/Satz mit dem Fehler und kopiere ihn in euer Lieblings-Mailprogramm. Vielleicht markiert Ihr das Wort oder den Fehler noch fett (HTML-Mails sind kein Problem), damit es schneller geht, also etwa so:

Relativen Angaben werden häufig

Den Rechtschreibfehler im oberen Satz, also die Endung bei Relativen, finde ich dann selbst. Seitenzahlen oder Kapitelangaben sind unwichtig, da ich über den Text suche. Durch eingefügte Bausteine verschiebt sich der Text sowieso.

Wenn die Satzstruktur oder der Inhalt verbesserungswürdig sind, dann schickt mir doch einfach einen Vorschlag. Sendet mir einfach eine E-Mail mit Hinweisen oder nutzt die Kommentarfunktion bei Galileo. Über Verbesserungsvorschläge und Anmerkungen freue ich mich immer.

Java Insel im Format PDF, EPUB oder MOBI?

Der Verlag hat lange an der digitalen Umsetzung für elektronische Lesegeräte gearbeitet. Die Inseln (und auch alle anderen Galileo-Bücher) wird es ab Ende Mai (also zur neuen Ausgabe für Java 8) als E-Books geben, und zwar in den Formaten PDF, EPUB und Kindle MOBI. Man wird dann das E-Book kaufen können (im Kauf sind alle Formate enthalten) oder man kauft die Print-Ausgabe und damit auch das E-Book (auch alle Formate). Wer bis dahin nicht warten kann muss das das Buch ganz normal herunterladen und mit (freien) Tools in das gewünschte Format konvertieren.

Errata

Eine Errata, die Fehler in der Insel auflistet, gibt es nicht. Das hat praktische Gründe. Einer ist, dass es nicht so viele Fehlermeldungen gibt. Ich riskiere einfach, dass zwei Personen den gleichen Fehler angeben. Das Melden von Fehlern ist über das Webformular bei Galileo so einfach, dass sich der Aufwand nicht lohnt. Dann beginne ich sofort die Arbeit an der neuen Auflage, sobald ich die Dokumente nach dem Druck zurück bekomme. Durch diese Änderungen verschwinden immer wieder Abschnitte komplett, werden verschoben oder umgeschrieben.

Danke!

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

Das Wichtigste auf einen Blick

Bestverkaufte Computing-Buch 2013

Laut Media Control ist mein 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 schreibe ich über aktuelle Entwicklungen in Java, Softwareentwicklung im Allgemeinen, Open-Source, JavaScript, neue Eclipse Plugins und NetBeans-Module und Neuerungen im Buch ›Java ist auch eine Insel‹.

Weblog von Christian Ullenboom» [RSS]