D djh_djh Unregistered / Unconfirmed GUEST, unregistred user! 2003-06-11 #1 Java中类似于c++的析构函数是什么? 我要在类析构时做一件事, 如何实现
V V_Lucky Unregistered / Unconfirmed GUEST, unregistred user! 2003-06-11 #5 老兄,java支持内存自动回收的,没有析构函数的。
小 小猪 Unregistered / Unconfirmed GUEST, unregistred user! 2003-06-11 #7 好像有个finalsize什么的函数可以覆盖,但是jdk并不保证一定会在析构对象时 调用它。 像你这种情况,你应该在程序中显示的释放资源,而不是依赖于jdk的自动析构。 简单的说,你完全可以自己提供一个拟析构函数,然后自己显示的调用,在这个 拟析构函数中自行释放资源,这样,你的程序逻辑就与c++没有什么区别了。 区别只在于,你的拟析构函数并不真正的释放对象,对象真正被释放交给jdk去 关心。但实际上,你完全可以认为在你显示调用拟析构函数后,对象已经被释放了。
好像有个finalsize什么的函数可以覆盖,但是jdk并不保证一定会在析构对象时 调用它。 像你这种情况,你应该在程序中显示的释放资源,而不是依赖于jdk的自动析构。 简单的说,你完全可以自己提供一个拟析构函数,然后自己显示的调用,在这个 拟析构函数中自行释放资源,这样,你的程序逻辑就与c++没有什么区别了。 区别只在于,你的拟析构函数并不真正的释放对象,对象真正被释放交给jdk去 关心。但实际上,你完全可以认为在你显示调用拟析构函数后,对象已经被释放了。
Z ZRWeng Unregistered / Unconfirmed GUEST, unregistred user! 2003-06-11 #8 有!对象的finalize()方法是在对象被释放前调用! System.gc() ;//强制垃圾回收器来释放这些对象的内存 System.runFinalizersOnExit() //System.runFinalizersOnExit() 方法并不立即试图启动垃圾回收器。 //而是当应用程序退出时,它调用每个对象的finalize() 方法。
有!对象的finalize()方法是在对象被释放前调用! System.gc() ;//强制垃圾回收器来释放这些对象的内存 System.runFinalizersOnExit() //System.runFinalizersOnExit() 方法并不立即试图启动垃圾回收器。 //而是当应用程序退出时,它调用每个对象的finalize() 方法。