Java Puzzlers: Traps, Pitfalls, and Corner Cases

von Joshua Bloch und Neal Gafter

In diesem sehr unterhaltsamen Buch decken Joshua Bloch und Neil Gafter, beide Mitentwickler der Java-Plattform, zahlreiche Fallstricke und Eckfälle der Java-Plattform auf.

Das Buch enthält 95 Rätsel in Form eines wenige Zeilen langen, scheinbar trivialen Java-Programms. Die Aufgabe des Lesers besteht darin, vorherzusagen, was das Programm tun wird. Die offensichtliche Antwort ist selten die richtige – und selbst wenn man die Falle erkennt, die die Autoren einem gestellt haben, tappt man oft in eine zweite, noch obskurere Falle.

Zu jedem Rätsel beschreiben die Autoren detailliert die Gründe für das unerwartete Verhalten (mit Verweisen auf die Java Language Specification) und liefern praktische Regeln, um das gezeigte Verhalten von vornherein zu vermeiden.

Einige der Rätsel sind stark konstruiert, um Ausnahmeregelungen aus den Tiefen der Java-Sprachspezifikation greifen zu lassen, mit denen ich in 25 Jahren Java noch kein einziges Mal zu tun hatte. Denn die meisten dieser Kuriositäten treten nicht auf, wenn man sauberen, lesbaren Code ohne „clevere” Tricks schreibt.

Vielen der Fälle begegnet man jedoch regelmäßig, wie z. B. dem %-Operator, den Eigenheiten vorzeichenbehafteter Integer-Typen, Ungenauigkeiten bei Fließkommazahlen, stillen Überläufen, versteckten (statt überschriebenen oder überladenen) Methoden oder der Initialisierung statischer Klassenvariablen, um nur einige zu nennen.

Jedes einzelne Rätsel ist spannend und lehrreich, und die Erklärungen sind humorvoll und unterhaltsam. Sehr amüsant ist, dass die Namen einiger Rätsel einen Hinweis auf die Lösung geben. Das mindert aber keineswegs den Spaß, denn man merkt es in der Regel erst hinterher beim großen „Aha”-Moment.

Das einzige Manko des Buchs ist, dass es auf dem Stand von Java 5 ist. Einige der Besonderheiten treten in modernen Java-Versionen nicht mehr auf – dafür gibt es sicherlich einige neue.

🎧 Als Hörbuch geeignet? Nein, wegen der zahlreichen Code-Beispiele.

Andere Empfehlungen aus den Genres dieses Buches

* Hinweis: Wir teilen gerne unsere Lieblingsbücher mit dir! Als Amazon-Partner verdienen wir eine kleine Provision bei Einkäufen, die du über unsere Links tätigst. Dies hilft uns, weiterhin Inhalte zu erstellen, die dir gefallen.