These are two of the best references available for Java programmers. They are targeted at someone who is already somewhat comfortable with Java, or has a strong understanding of C++:
Block, Joshua. Effective Java Programming Language Guide. 1st ed. Boston, MA: Addison Wesley, 2001.
Haggar, Peter. Practical Java Programming Language Guide. 1st ed. Boston, MA: Addison Wesley, 2000.
A very accessible beginner’s guide to Java is
Sierra, Kathy, and Bert Bates. Head First Java. 2nd ed. Sebastopol, CA: O’Reilly, 2005.
A good introduction to Swing and Java GUIs is
Walrath, Kathy et al. The JFC Swing Tutorial: A Guide to Constructing GUIs. 2nd ed. Boston, MA: Addison Wesley, 2004.
If you plan to use J2EE for enterprise development, check out
Johnson, Rod, and Juergen Hoeller. Expert One-on-One J2EE Development without EJB. 1st ed. Indianapolis, IN: Wrox-Wiley, 2004.
Sun has extensive Java documentation on the web, including tutorials and a complete API reference, at
http://java.sun.com/docs/