Hi ms !!
1) If in finalize method we make re refrence to the object .Will that object ever be garbage collected.
No. since the gc calls the finalize method only once. If you make any reference to an object then it will not be GC'ed.
2) Is it mandatory to call the base class finalize method in the subclass's finalize method else the compiler will give compile time error .
Compiler won't give any error, but it's neccessory to call the superclass's finalize as finalize methods are not chained by default.
I hope this is clear.