CSE341 -- Java -- Books

Keunwoo's brief Java book reviews

The Budd book is pretty good, but if you find it doesn't suit all your needs, here are a few Java books that might be worth examining. As always, caveat emptor.

Disclaimer: the following are Keunwoo's personal opinions, they do not represent an endorsement by the Department of CSE, the University of Washington, or the State of Washington. The offsite links to vendors are for your convenience only, and do not represent an endorsement either. I am not personally affiliated with any of the sites to which the following links point.

The Java Programming Language, Second Edition, Ken Arnold & James Gosling
Arnold Gosling is the creator of the Java language. Though a bit dated (they really should publish an update with coverage of the 1.2 libraries), this is a pretty good reference to the Java language. Unlike Budd, the Arnold/Gosling book does not teach much object-oriented design. However, when you want a concise description of the Truth about some Java language feature, Arnold and Gosling is the place to look. My copy is dog-eared from constant use back when I was learning Java.

For additional info, see Sun's page on the book. (P.S.: You definitely want the second edition, at least until they bring out a third.)


Patterns in Java, Vol 1, by Mark Grand
The classic design patterns book is the "Gang of Four" book that Alan mentioned in class, but the Gamma/Helm/Johnson/Vlissides book uses C++. You can get almost all the same material, but with Java-specific implementation examples, from the Grand book. Grand presents the material competently, though not as well as the Gang of Four.

P.S.: Rumor has it that Volume 2 of Grand's series is underwhelming. You should probably avoid it.


Downloadable documentation from Javasoft@Sun
Okay, so this is not a book, but the downloaded documentation can serve as an online replacement for all the reference books below. Try the docs, you'll like them. And, of course, they're free.


Reference texts:
Java Class Libraries, Vol 1, by Patrick Chan
Java Class Libraries, Vol. 2, by Patrick Chan
Java in a Nutshell, 3rd ed., by David Flanagan
Java Foundation Classes in a Nutshell, by David Flanagan
If you really can't stand using HTML documentation, these books provide library reference documentation in print form. IMHO there's no really great library reference, where I define "great" as (a) a reasonable size to carry around and (b) having concise descriptions of each method in each major class. Instead, we have the two pairs of books above, which each cover one of the bases. (As I've noted, the HTML docs are excellent and take up no space at all.)

The Chan texts provide hardcore, in-depth descriptions of the class libraries and their methods, along with usage examples. Though expensive and mammoth-sized, the Chan texts are very comprehensive.

The Nutshell Handbooks, on the other hand, have more limited utility. They basically just list the profiles of methods in the standard classes, so they're useful only for refreshing your memory if you've forgotten the profile of some random API method. On the other hand, they'll fit in your backpack. "Java in a Nutshell" covers general-usage classes, the JFC book covers graphics and AWT classes (these used to be one book, but then Java got fat and O'Reilly got greedy).

Update 20 July: The Java Developers Almanac 2000 has, in a single backpack-ready volume, exhaustive listings of member functions etc. for basically every class in the Java standard libraries, but the background information for each class is sparser than in the Flanagan books.

Last modified: Thu Jul 20 14:40:29 PDT 2000