Books on Java

NOTE: The list below is far from complete and is not intended to be an endorsement of any particular collection of books. If you know of a book that ought be there, send us an email.
We will categorize Java books into five categories:

So, which books should a beginner get? Theoretically, no book should be needed given the wealth of resources online. However, most of us like to have something to read if just to avoid looking at the screen all the time. For beginners, the following books might initially be best:

Fast-intro books:

First-course books:

Second-course books:

Advanced books:

Note: The advanced books listed above do not even scratch the surface of what is available. There is, for example, an entire series of books on Java by O'Reilly Publishing that cover various special topics such as threads, concurrent programming, servlets and the like.

AP Computer Science books:

Links to reviews on Java books: