I have learned from Thinking in Java by Bruce Eckel (the free edition for Java 1.4) and the Katherine Sierra and Bert Bates book for SCJP 5.
It took me about 2 and a half months. I did only a few free mock exams. Should probably took more to get a better score, but I'm satisfied that I passed.
The questions were fair, but the time was not enough for me, I didn't finished about 4 questions and couldn't do any reviews (btw. before reviewing a drag&drop questions there is warning that the question will get erased).
In the middle of the exam the given marker refused to write on the plastic pad but I could easily write on the plastic desk:-)