正确地覆盖finalize()方法当然是可行的。我相信守护程序的技巧在于确保即使您重写了finalize()方法,也没有调用super.finalize(),守护程序在调用子类的finalizer之前会先调用父类的finalizer。
当封闭对象实例被创建时,守护对象只是一个实例变量。
那是匿名(内部)类。我相信大多数Java书籍或教程都有涵盖。尝试使用“java anonymous class”进行谷歌搜索将会给您提供很多资源,例如http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm