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