Prictical java第236页
在垃圾回收器回收某个class object之前,JVM会调用这个class的finalize()
但无法保证finalize()在可预期的时间上执行。这是由于“终结(finalization)动作”与“垃圾回收”之间的异步本性造成的。由此推断,finalize()未必会在程序结束前被执行