阅读背景:

java中finalize终结方法的一些问题

来源:互联网 
一、finalize的作用
       由于在java中存在垃圾回收器,因此许多人认为它相当于C++中的析构函数,然而,垃圾回收器只会回收使用new方法获得的内存,而通过其他方法得到的内存以及任何其他系统资源(比如文件句柄、数据库连接等)都不能通过垃圾回收器得到释放。因此我们需要其它的释放函数。那么能够做到这一切的是finalize()方法(但是,一定不要使用finalzie方法去释放这些资源)。finalize方法的工作原理“假定”是这样的:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。因此,如果有一些需要释放的资源,可以讲释放语句写在finalize方法中,它们将在垃圾回收器工作时自动得到执行。那么,为什么不能使用该方法去释放资源呢?       由于在java中存在垃圾回收器,因此许多人认为它相当于C++



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: