Stuie,
If I can't get something through the explanations then I'll go and step through the code examples with a debugger, but its mostly reading, making notes, rereading, repeat. In the questions I'm usually only wrong on one part. Really fustrating
Sometimes you might answer a question incorrectly because:
a) You didn't get a concept clearly or
b) the question seemed to be confusing
c) the question seemed to be testing you on concept A, when it was actually testing you on concept B.
To combat point (a), also take a note of the
pattern of the questions that you answer incorrectly. Analyze it. If you find topics/ questions that you are answering incorrectly, repeatedly, you need to get the basics right.
To combat point (b) and (c), it is important to understand the exam-how it uses the questions to test concepts. To do so, you must answer a lot of mock exams/ sample questions.
After you work with some sample questions, you can work out your own to-do list for answering questions. For an example:
a) Check accessibility of variables and methods.
example:
The variable 'name' from class 'ClassA' won't be accessible in class 'ClassB'. So the code won't compile.
b) Check valid assignment of variables-primitives and object references.
Example:
You can add more as you go on..
In the real exam (and also the sample exam questions), you will notice how additional code is added to these points.
As Roel mentioned, the exam is like a driving test and nothing can beat the hands-on experience with coding-writing lots of code.
Good Luck with your exam preparation.
With respect,
Mala