Documentation

On-line documentation from the Sun Microsystems Java web site

The entry for the documentation on the version 6.0
JDK 6 Documentation

The tutorials on the Java language
These tutorials may be downloaded at the following url :
http://java.sun.com/docs/books/tutorial/information/download.html
or read on-line from
http://java.sun.com/docs/books/tutorial/

Books

A very interesting book about the best use of Java (and object programming) :
Joshua Bloch
Effective Java, Programming Language Guide
Addison-Wesely, 2001

A good book to learn generics and collections in Java
Maurice Naftalin et Philip Wadler
Java Generics and Collections
O'Reilly 2006

A good book to learn UML
Michael R Blaha, James R Rumbaugh
Object-Oriented Modeling and Design with UML (2nd Edition)
Prentice Hall, 2nd edition, 2004

The main reference on design patterns :
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Patterns: Elements of Reusable Object-Oriented Software
Addison-Wesley Professional, 1st edition, 1995

Steven John Metsker, William C. Wake
Design Patterns in Java(TM)
Addison-Wesley Professional, 2nd edition, 2006

For those who are interested in concurrent programming
Doug Lea
Concurrent Programming in Java, Design Principles and Patterns, 2nd edition
Addison-Wesley 1999

For those who don't know Java
Sharon Zakhour, Scott Hommel, Jacob Royal, Isaac Rabinovitch, Tom Risser, Mark Hoeber
The Java Tutorial: A Short Course on the Basics
Prentice Hall PTR, 4th edition, 2006