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 didnt 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 wont find elsewhere.
Core Java 2, Volume IFundamentals (Prentice-Hall, 1999) and Volume IIAdvanced Features (2000), by Horstmann & Cornell.. Huge, comprehensive, and the first place I go when Im hunting for answers. The book I recommend when youve 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). Im not as thrilled with it as he is. Its big, its expensive, and the quality of the examples doesnt satisfy me. But its a place to look when youre stuck and it seems to have more depth (and sheer size) than most alternatives.
Java Network Programming, 2nd Edition, by Elliotte Rusty Harold (OReilly, 2000). I didnt 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 theyre fairly easy to translate into Java. Each algorithm is thoroughly explained.