根据我的理解,单个对象只有在应用程序即将终止时才会销毁.所以在C中我写了一个Singleton类来记录我的应用程序,在那个Singleton记录器的析构函数中,我记录了我的应用程序终止的时间.事情在C中完美运作.
现在我想在Java中使用相同的记录器,因为在java中没有析构函数,所以我为该单例记录器实现了finalize方法.但似乎finalize方法实际上永远不会被调用.
所以,我添加了System.runFinalizersOnExit(true); line,在我的代码中的某个地方(虽然我知道它已被弃用)并且每次在应用程序终止之前都会调用finalize方法.但还是有问题!如果我尝试在finalize方法中写入任何文件,它不起作用,虽然System.out没有任何问题!