Effective Java

Eine kleine Serie beleuchtet Buchklassiker der Softwareentwicklung, die seit Werken wie Wirths "Algorithmen und Datenstrukturen", Kernighans und Ritchies C-Bibel oder den Stoustrup (C++) jedem Informatiker geläufig sein sollten. Den Anfang gibt Joshua Blochs Java-Werk.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.
Von
  • Karsten Kisser

Joshua Bloch

Second Edition
Santa Clara 2009
Addison Wesley
346 Seiten
US-$ 54,99
ISBN 978-0-321-35668-0

Pearson Education will die zweite Auflage von "Effective Java" nicht ins Deutsche übersetzen, wie der Verlag das noch mit dem Erstlingswerk gemacht hat. Das ist verschmerzbar, denn das Werk lässt sich gut und flüssig auf Englisch lesen.

Mehr Infos

Klassiker der Softwareentwicklung

Joshua Bloch hat die Entwicklung von Java von den Anfangstagen an stets begleitet, als er noch bei Sun beziehungsweise JavaSoft beschäftigt war (er wechselte 2004 zu Google, fühlt sich Java aber nach wie vor verbunden). Ihn kann man mit Recht als eine anerkannte Größe im Java-Umfeld betrachten.

Seit der ersten Version des Werks aus dem Jahr 2001 hat sich im Java-Umfeld viel getan, sodass das Buch jetzt auf Java SE 6 eingeht, selbstredend kommen Ausführungen zu Generics, Enums, Autoboxing oder Annotations vor. Die "Kochrezepte" (in der deutschen Übersetzung der Erstauflage Themen genannt) sind von 57 auf 78 angewachsen. Das zeigt deutlich, dass die zweite Auflage nicht nur eine weitere Auflage des Klassikers ist, sondern Bloch sie an die aktuellen Java-Gegebenheiten angepasst hat. Manche Themen sind an andere Stelle gerückt. Für das bessere Zurechtkommen mit dem Werk findet sich für "Altleser" im Anhang eine Übersicht darüber, welches Thema wohin gewandert ist (alt gegen neu gegenübergestellt).

Das Werk ist in zehn Java-Abschnitte untergliedert, die thematisch zusammenhängende Bereiche abarbeiten. Im Einzelnen sind das: "Creating and Destroying Objects", "Methods Common to All Objects", "Classes and Interfaces", "Generics", "Enums and Annotations", "Methods", "General Programming", "Exceptions", "Concurrency" und "Serialization".

Dem Anspruch, den Leser beim effektiven Umgang mit Java und dessen fundamentalen Libraries (java.lang, java.util, java.util.concurrent oder java.io) zu helfen, wird auch die zweite Auflage vollauf gerecht. Wer nun Ausführungen zur Grafikprogrammierung erwartet, wird erneut enttäuscht. Bloch geht nur auf Java ein – das aber mit einem Tiefgang, der – um das meiste aus dem Werk zu holen – schon sattelfeste Java-Kenntnisse voraussetzt. Wer die mitbringt, für den ist das Werk eine wahre Fundgrube an guten Codeschnippseln und Best-Practice-Beispielen. Dabei belässt es Bloch nicht nur bei den guten Beispielen, sondern er geht an manchen Stellen auch explizit auf Antipatterns ein, die aber klar mit "// Never do this!" kommentiert sind.

Das Standardwerk sollte in keinem Bücherregal eines Java-Entwicklers fehlen und (noch viel wichtiger) auch gelesen sein. Dabei muss man es nicht an einem Stück lesen, sondern kann sich gezielt Themen aussuchen, die man "beackern" möchte. (Karsten Kisser) / (ane)