Hi,
Regarding finalize method,
be a bit careful when using it in multi-threaded code.I am giving you the description given in the java1.2 doc
" The Java programming language does not guarantee which thread will invoke the finalize method for any given object. It is guaranteed, however, that the thread that invokes finalize will not be holding any user-visible synchronization locks when finalize is invoked. If an uncaught exception is thrown by the finalize method, the exception is ignored and finalization of that object terminates. "
regards,
VGG