I spent about 2 months preparing for the exam. The reference books I used were Core
Java, RHE, Exam Cram and JLS.
First, I studied Core Java Volume I and the first two chapters of Volume 2. Then 2 weeks before the exam, I studied RHE and Exam Cram. I only refered to JLS when I was getting conflicting information from different sources.
Meanwhile, I took almost all the mock exams in JavaRanch's list (Thanks! JavaRanch). I did lots of
testing on my own machine. Some of the concepts or ideas will be much more understandable if you learn them through pratice.
Hope this helps and enjoy your learning!
Daniel