Jim,
Tough luck! The positive way to look at it is this: You wouldn't have felt great with just 61%, so put in your best for the next couple of weeks and aim for a perfect score.
I also started just 3 weeks back and gave it my best. Here are some resources that helped me:
Here are some resources that I found helpful:
1.
http://www.geocities.com/SiliconValley/Orchard/9362/java/javacert/Desboro.htm 2.
http://www.absolutejava.com/articles/java-tidbits.html 3.
http://www.angelfire.com/or/abhilash/Main.html (Get the answer explanations from the author.)
4. Maha's discussions on JavaRanch off
http://www.javaranch.com/maha/Discussions/discussions.html If you have time, go through Maha's discussions, as some concepts are very well explained. As you must have realized, the exam tests ones fundamentals. I got quite a few questions that looked similar to the Mock exams, but were actually tougher. I would strongly recommend that you try coding some programs. Finally, this cheat sheet REALLY helped me:
Two public classes in the same file.
Main method calling a non-static method.
Methods with the same name as the constructor(s).
Thread initiation with classes that dont have a run() method.
Local inner classes trying to access non-final vars.
Case statements with values out of permissible range.
Math class being an option for immutable classes !!
instanceOf is not same as instanceof
Private constructors
An assignment statement which looks like a comparison if ( a=true)...
System.exit() in try-catch-finally blocks.
Uninitialized variable references with no path of proper initialization.
Order of try-catch-finally blocks matters.
main() can be declared final.
-0.0 == 0.0 is true.
A class without abstract methods can still be declared abstract.
RandomAccessFile descends from Object and implements DataInput and DataOutput.
Map doesnot implement Collection.
Dictionary is a class, not an interface.
Collection is an Interface where as Collections is a helper class.
Class declarations can come in any order ( derived first, base next etc. ).
Forward references to variables gives compiler error.
Multi dimensional arrays can be sparce ie., if you imagine the array as a matrix, every row need not have the same number of columns.
Arrays, whether local or class-level, are always initialized,
Strings are initialized to null, not empty string.
An empty string is NOT the same as a null string.
A declaration cannot be labelled.
continue must be in a loop( for, do , while ). It cannot appear in case constructs.
Primitive array types can never be assigned to each other, eventhough the primitives themselves can be assigned. ie., ArrayofLongPrimitives = ArrayofIntegerPrimitives gives compiler error eventhough longvar = intvar is perfectly valid.
A constructor can throw any exception.
Initilializer blocks are executed in the order of declaration.
Instance initializer(s) gets executed ONLY IF the objects are constructed.
All comparisons involving NaN and a non-Nan would always result false.
Default type of a numeric literal with a decimal point is double.
integer (and long ) operations / and % can throw ArithmeticException while float / and % will never, even in case of division by zero.
== gives compiler error if the operands are cast-incompatible.
You can never cast objects of sibling classes( sharing the same parent ), even with an explicit cast.
.equals returns false if the object types are different. It does not raise a compiler error.
No inner class can have a static member.
File class has NO methods to deal with the contents of the file.
InputStream and OutputStream are abstract classes, while DataInput and DataOutput are interfaces.
All the best!
Dilshad
[This message has been edited by Dilshad Syed (edited March 21, 2001).]