I moved from C++ to Java 6 years ago an used "Effective Java" by Bloch, this is a style book which explains in 50 short articles how best to use various java classes and techniques. This is very similar to "Effective C++" by Meyers and "Exceptional C++" by Sutter.
If you already know C++ and object oriented programming and can read Java this is the fastest way to write good quality java code.
There is a new edition out now with generics etc. In my mind this book is essential for all Java programmers as well as those wanting to learn Java.