java中什么时候使用finalize()方法

转载于http://www.blogjava.net/zhyiwww/archive/2010/11/26/339105.html

在java中,垃圾回收不需要我们自己执行,而是由系统自动执行。
这一点给了我们发开发人员省了不少心,但是finalize()方法一直是个困惑。
虚拟机在执行垃圾回收之前都会执行对象的finalize(),那么finalize()到底有什么用呢?
其实finalize()主要是给其他调用而创建的空间在对象回收时页同步回收而设置的。
比如,你调用了C语言,使用了mallow()开辟了一段内存空间。在你释放java对象的时候,虚拟机只能释放java对象占用的空间,而不能释放C开辟的内存空间,所你你在释放此对象之前要先回收你在C语言中开辟的空间。
这各时候才用到finalize()方法。
平时的时候不要随便使用finalize()方法。

以上理解是《java编程思想中的理论》,详细深入的理解请参考此书 。

猜你喜欢

转载自blog.csdn.net/mojiezuo123/article/details/80980281