日期:2011-03-22 16:17:00 来源:本站整理
java的finalize()办法[Java编程]
本文“java的finalize()办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
此时,大家大概已相信了自己应当将finalize()作为一种通例用处的排除办法利用.它有什么好处呢?
要记着的第三个重点是:
垃圾汇集只跟内存有关!
也就是说,垃圾汇集器存在的唯一缘由是为了回收程序不再利用的内存.所以关于与垃圾汇集有关的任何活动来说,此中最值得注意的是finalize()办法,它们也必须同内存以及它的回收有关.
但这能否意味着假定对象包含了其他对象,finalize()就应当明确释放那些对象呢?答案能否定的——垃圾汇集器会负责释放全部对象占据的内存,无论这些对象是若何成立的.它将对finalize()的需求限制到特别的情形.在这种情形下,我们的对象可采取与成立对象时差别的办法分配一些存储空间.但大家大概会注意到,Java中的全部东西都是对象,所以这毕竟是怎么一回事呢?
之所以要利用finalize(),看起来仿佛是由于有时需求采纳与Java的普通办法差别的一种办法,通过度配内存来做一些具有C气势的事情.这主要可以通过“固有办法”来举行,它是从Java里调用非Java办法的一种方法(固有办法的问题在附录A谈论).C和C++是目前唯一得到固有办法支持的语言.但由于它们能调用通过其他语言编写的子程序,所以可以有效地调用任何东西.在非Java代码内部,大概能调用C的malloc()系列函数,用它分配存储空间.并且除非调用了free(),不然存储空间不会得到释放,从而造成内存“漏洞”的呈现.当然,free()是一个C和C++函数,所以我们需求在finalize()内部的一个固有办法中调用它.
读完上述文字后,大家大概已弄清楚了自己没必要过量地利用finalize().这个思惟是精确的;它并非举行普通排除工作的抱负场所.那么,普通的排除工作应在何处举行呢?
以上是“java的finalize()办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论