Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web

Bruce Eckel

Taschenbuch
Ausgabe vom 10. Februar 2006
Verkaufsrang: 23230 (je kleiner desto beliebter)
EAN/ISBN: 9780131872486
ASIN: 0131872486 (Amazon-Bestellnummer)
Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web - Bruce Eckel
Dieser Titel ist in englischer Sprache.
Thinking in Java ist die gedruckte Version von Bruce Eckels Online-Materialien und behandelt Java speziell für diejenigen, die bereits Programmierkenntnisse haben. Die Einführung des Autors in das Wesen von Java als neue Programmiersprache und die gründliche Erläuterung der Merkmale von Java machen dieses Buch zu einem brauchbaren Handbuch.
Thinking in Java beginnt ein wenig esoterisch mit den Überlegungen des Autors, was an Java neu und besser ist. (Der Schrifttyp für die Kapitelüberschriften in diesem Buch ist außergewöhnlich anstrengend für die Augen.) Er legt kurz und deutlich dar, wie man mit Java auf einfache Weise seine Programmierfähigkeiten erweitern und verbessern kann. Wirklich gut an dem Buch sind dann die Erklärungen zu den Merkmalen der Programmiersprache. Es gibt eine Anleitung zu den Java-Basistypen, Schlüsselworten und Operatoren. Das Handbuch schließt ausführliche Quellcodes ein, die manchmal etwas entmutigen (wie es beim Beispielcode für alle Java-Operatoren in einem Listing der Fall ist). Kurz, das Buch erweist sich für erfahrene Entwickler als sehr nützlich.
Es geht weiter mit Problemen des Klassendesign, wann man Vererbung und Komposition verwendet, und mit Themen im Zusammenhang mit Kapselung und Polymorphie. (Die Erläuterungen zu den Inner-Klassen und Geltungsbereichen werden den meisten Lesern ein bißchen übertrieben erscheinen.) Das Kapitel zu den Java-Sammelklassen sowohl für das Java Developer's Kit (JDK) 1.1 als auch für die neuen Klassen, wie Sätze, Listen und Maps, ist weit besser. Das Material aus diesem Kapitel werden Sie sonst wahrscheinlich nirgendwo finden.
Kapitel über Ausnahmebehandlung und Programmieren mit Typinformation sind ebenso von Nutzen wie die Kapitel zu den neuen Swing-Interface-Klassen und zur Netzwerkprogrammierung. Obwohl das Buch eher eine bunte Mischung anbietet, enthält Thinking in Java hervorragendes Material für objektorientiert arbeitenden Programmierer, die wissen möchten, was es mit Java auf sich hat.
Thinking in Java ist von den Grundlagen der Javasyntax bis hin zu den fortgeschritteneren Merkmalen (Netzwerkprogrammierung, fortgeschrittene objektorientierte Fähigkeiten, Multithreading) darauf ausgerichtet, Java zu lehren und zu vermitteln. Bruce Eckels gut lesbarer Stil und die kleinen, direkten Programmierbeispiele verdeutlichen sogar die kompliziertesten Konzepte.

Programming languages have similarities with general purpose languages such as Spanish. You might know enough Spanish to cobble together a simple letter or read a poster but the real breakthrough comes when you can think in it. Thinking in Java attempts to improve your understanding to the point where you can think about a programming problem in Java rather than in English or whatever and then translate it. This fits extremely well with the basic Java ethos, which is to enable you to frame a problem in terms of the Java objects you'll use to provide a solution.
Eckel approaches teaching you to think in Java by introducing a topic, talking around it to put it in context, providing examples to try and then discussing them in depth. Each chapter has a summary followed by exercises. The book is structured for someone coming from a procedural language background. Eckel spends a lot of time on OOP concepts in general and the way in which it's implemented in Java. After covering operators Eckel goes on to program flow, initialisation and garbage collection, packages, class reuse, polymorphism and so on all the way up to distributed programming (servlets) and appendices on passing objects, the JNI, guidelines and resources. The whole book is also on CD (in several formats including HTML) with the source code (guaranteed to compile under Linux using Java 1.2.2). The CD also contains Thinking in C: Foundations for C++and Java.
Thinking In Java is basically a tutorial. You're intended to read it linearly and work the exercises. It helps that it's well written but it helps even more to have a programming background. If not, you'll probably want a straight Java reference to hand as well. -Steve Patient

Perfect for migrating to Java from a fellow object-oriented language (such as C++), the second edition of Thinking in Java continues the earlier version's thoughtful approach to learning Java inside and out, while also bringing it up to speed with some of the latest in Java 2 features. This massive tutorial covers many of the nooks and crannies of the language, which is of great value in the programming world.
The most prominent feature of the book is its diligent and extremely thorough treatment of the Java language, with special attention to object design. (For instance, 10 pages of sample code show all of the available operators.) Some of the best thinking about objects is in this book, including when to use composition over inheritance. The esoteric details of Java in regard to defining classes are thoroughly laid out. (The material on interfaces, inner classes, and designing for reuse will please any expert.) Each section also has sample exercises that let you try out and expand your Java knowledge.
Besides getting the reader to "think in objects," Thinking in Java also covers other APIs in Java 2. Excellent sections include an in-depth tour of Java's collection and stream classes, and enterprise-level APIs like servlets, JSPs, EJBs, and RMI. Weighing in at over 1,000 pages, any reader who is serious about learning Java inside and out will want to take a look at this superior resource on some of the latest and most advanced thinking in object design. -Richard Dragan
Topics covered: Object-design basics Inheritance and polymorphism Object lifetimes Exception handling Multithreading and persistence Java on the Internet Analysis and design basics Java basics: keywords and flow control Initializing objects Garbage collection Java packages Designing for reuse: composition vs. inheritance The final keyword Interfaces and inner classes Arrays and container classes
Java I/O classes Run-time type identification UI design basics with Swing Deploying to JAR files Network programming with sockets JDBC database programming Introduction to servlets JavaServer Pages (JSPs) RMI CORBA Enterprise JavaBeans (EJBs) and Jini Cloning objects The Java Native Interface (JNI) Java programming guidelines