One hour ago, I pass SCJP2 with 95%. I wasn't very excited, the exam was too simple. To learn the language, I took three to four months on and off. To prepare the test, I spent one month full time. I used "Java for students" and "java in a nutshell" to learn, and RHE and Java Cram for the test. Both books are good for the exam. I like RHE more since it is so easy to read, although hard to carry. I went to maha's page for the mock exams. I felt bored after I did twenty of them. So my suggestion is that one definately needs to do some mocks, however, one doesn't have to do all and definately NOT spend money to buy mocks. The whole problem set was well expected. There is not a single one which surprised me. That is probably why I don't feel excited. Before I went to the exam, I didn't feel well prepared for the gridbaglayout although I did know what every field means, but still have a hard time to combine them together. In the test, the single choice problem made it much simpler. One doesn't need to worry about the mediatracker and the socket. The problems are not really for the two object, instead they are related to the i/o and thread which are well within the test objectives. For the last month preparation, approximately I spent one week reading RHE, one week for Exam Cram, then I started to do mocks. In the third and forth week, I did some mocks and read RHE and Cram again. I felt that is more than plenty of time. Of course, I was doing it full time. I think there are one or two questions not worded well which appeared in Kai's notes. Since there are no known answers to them, I have to make my own judgement. I think I got them wrong. Anyway, this is great site. Just want to show my appreciation and hopefully my experience could help others. Thanks and good luck to all.