Excellent Java books

As part of my main assignment I have been doing a lot of Java programming recently and found the following books to be very useful:

Effective Java: Second Edition

This book contains some very useful advice and suggestions. It contains real examples and teaches you valuable tips to become a better programmer.  Its  quite a thin book, but it does contain a lot of good material.

Java Performance Tuning

This is a much bigger book than Effective Java, and I find I am using it more as a reference book.  It contains lots of advanced tips for improving enterprise applications.