Books
Thinking in Java, 2nd Edition. Available as fully-indexed, color-syntax-highlighted HTML on the CD ROM bound in with this book, or as a free download from www.BruceEckel.com. Includes material that didn’t make it into the third edition; see the table of contents in that book for details.
Thinking in Java, 1st Edition. Available as fully-indexed, color-syntax-highlighted HTML on the CD ROM bound in with this book, or as a free download from www.BruceEckel.com. Includes older material and material that was not considered interesting enough to carry through to the second edition.
Just Java 2, 5th edition by Peter van der Linden (Prentice Hall, 2002). Not only useful but fun. He often takes a similar approach as I do, and doggedly follows a problem through to discover the complete details, so he often has answers you won’t find elsewhere.
Core Java 2, Volume I—Fundamentals (Prentice-Hall, 1999) and Volume II—Advanced Features (2000), by Horstmann & Cornell.. Huge, comprehensive, and the first place I go when I’m hunting for answers. The book I recommend when you’ve completed Thinking in Java and need to cast a bigger net.
The Java Class Libraries: An Annotated Reference, by Patrick Chan and Rosanna Lee (Addison-Wesley, 1997). Although sadly out of date, this is what the JDK reference should have been: enough description to make it usable. One of the technical reviewers for Thinking in Java said, “If I had only one Java book, this would be it (well, in addition to yours, of course).” I’m not as thrilled with it as he is. It’s big, it’s expensive, and the quality of the examples doesn’t satisfy me. But it’s a place to look when you’re stuck and it seems to have more depth (and sheer size) than most alternatives.
Java Network Programming, 2nd Edition, by Elliotte Rusty Harold (O’Reilly, 2000). I didn’t begin to understand Java networking until I found this book. I also find his Web site, Café au Lait, to be a stimulating, opinionated, and up-to-date perspective on Java developments, unencumbered by allegiances to any vendors. His regular updates keep up with fast-changing news about Java. See www.cafeaulait.org.
Design Patterns, by Gamma, Helm, Johnson and Vlissides (Addison-Wesley, 1995). The seminal book that started the patterns movement in programming.
Practical Algorithms for Programmers, by Binstock & Rex (Addison-Wesley, 1995). The algorithms are in C, so they’re fairly easy to translate into Java. Each algorithm is thoroughly explained.