David Friedel and Anthony Potts have provided a 414-page book that covers the main features of Java in a relaxed style. Although the authors have the space to ramble in this type of book, here they succeed in explaining without wasting words. The TickerTape applet is used as a vehicle to introduce applet life cycles, types, imports, method overrides, double buffers, and threads. This worked better than it would have had they introduced these concepts in isolation. This book has a good discussion of upcasts and downcasts.
Downcasts represent a widening of the fields in an object, while upcasts are a narrowing.
Key methods in each class are listed, then example code demonstrates their usage. The frequent use of tables to organize important methods, package names, keywords, types, and sizes worked well for me. There is a language-reference card in the back. An appendix gives details about linking Java with SQL, of all things. Just Java might be most suitable for beginners, Java Programming Language Handbook for anyone who likes a good tutorial approach, and Java in a Nutshell for intermediate programmers who need a book they can use now as well as in the future.