I studied this book for the Sun (now Oracle) Certified Java Programmer SE 6 exam (Exam 310-065). I thought I knew how to program in Java before but I found that I learned quite a lot from the book. It goes through the subjects covered on the exam and explains them and gives sample code.
There were a few times when I thought it could have been better organized, but overall the organization was OK. The main drawback I found was that there seemed to be a few details it left out. There were a number of times as I was doing the practice questions that I came upon some rule that had not been covered in the text. I even rescheduled my test because I was missing so many of the questions. That is the main reason why I'm giving it four stars and not five. In their defense, it is difficult to write a text that exhaustively covers everything in a language as large as Java. I did pass the test, but I'm just wondering if I could have passed the test earlier and with less time spent studying had they explained a few things a little better.
Despite a few small flaws, I ended up passing the test with an 85%, 27% more than the required 58%. The only training I did was studying this book, doing the practice questions, writing lots of sample programs, and occasionally looking at the online API. Oh, and I did consult another book about threads but I ended up not needing to because the questions on threads on the exam were not very hard. So this book did it's job. The questions on the test were easier than the book's practice questions.
I would recommend that someone wanting to pass the exam get this book, read it, take notes, and do lots of little programs as the authors recommend in the forward. Start by copying the sample code in the book, then tinker with it to see what happens when you change this thing or that thing. Then write a few of your own programs, changing various parts to see how it changes the output. And then take all the sample questions at the end of the book, and then do the sample quizzes and tests on the CD. Start the quizzes several weeks before the test, not a week before like I did, so you can have plenty of time to go back and study the areas where you are weak. When you miss a question, find out why you missed it, and go back later after you have forgotten the specific answers and try it again. And don't stress too much because like I said I found the actual test to be easier than their practice questions. If you combine careful study of this book with writing code and doing the quizzes, you will almost certainly pass the test.