Now that I passed the exam, I would like to share some practices that helped me for preparing. All of these are result of my personal experience and by no means a scientific research :)
- The book I used to study was the legendary book by Katherine Sierra and Bert Bates, available from amazon. This book contains all the materials you need for the exam, and even more than that. The mock questions they contain are actually a lot harder than the ones in real exam, but it is still good in a way that it toughens you up. I was surprised to see than in real exam for multiple choice answers they tell you how many you have to select, in the mock questions in the book they don't.
- Code, code, code! I will say it again, code! Whatever question arises in your head, try to immediately figure it out by writing a small piece of program that would help you to see what is going on and understand it. Leave no darkness in your mind about how things work in Java. Also try to use java compiler from console, not IDE like Eclipse, because sometimes they have I/O problems of mixing outputs. (I saw that when I had print statements in finally block, and sometimes in Eclipse they were appearing after exception, but in console print statement inside finally executed always before the method threw an exception. I guess standard error and standard output streams are somehow not separated properly.)
- Sierra book advises you to first skim over the easy questions and answer them before. DO NOT DO THAT! The questions in this exam are known to be VERY tricky, so a lot of questions which may seem easy to you at a first glance can contain very nasty tricks. Go through every question in order, and never underestimate the hardness of the question. In fact there are some questions that which will be very easy, but those few do not worth taking the risk of missing tricky questions. As one old saying says, if you underestimate your enemy, you will loose, if you overestimate your enemy, you will win only once, and then loose. To win him all the time you need to exactly know him. You are going to give this exam only once, so you will not loose anything if you overestimate its difficulty ;)
- Use public transportation to get to your exam location. However experienced driver you are, driving takes attention, thus it may impair your concentration and focus before the exam. It also depends on availability of public transportation, I was lucky to have my testing center only 500m away from train station. But if this would not be the case for me, I would probably go out half an hour earlier than I need in order to have some time to relax and concentrate later. I also took my time to revise my notes in the train, since train took 20 minutes to get to destination :)
- Take water! 3 hours of active thinking is not a little, and brain really works better when it is hydrated. I drank around a liter of water during the exam, and I could think sharply for 2 hours straight. In mock exams I was doing before, I was getting tired after 10-15 questions. What I would like to suggest is that verify that you will be able to use bathroom in the exam (most places should not have a problem, but verification will not hurt), because you will really need it :) I would also suggest not to take any food, especially the 'energetic' ones. Digestion is known to be one of the most energy-consuming processes in human body, together with brain activity, so any energetic food takes time to give effect. The time you don't really have during the exam.