-
2004-04-04
读《Effective Java》-笔记6
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://pcmanlin.blogbus.com/logs/127682.html
读《Effective Java》-笔记6
Chapter 2 创建和销毁对象简介:
Item6:避免使用终结器
全文:
Item6:避免使用终结器
终结器的行为往往是不可预知的,通常还很危险,可能导致错误的运行行为、低下的执行效率和移植性的问题,应该尽量避免使用。
终结器和C++中的析构函数不同,析构函数是释放同一个对象相关资源的,相对于构造函数。Java中的垃圾回收机制释放无用资源的内存占用,析构函数通常还可以释放非内存资源,而Java中使用try-finally来释放非内存资源。
终结器有两个无法保证:
1) 终结器无法保证立刻启动,也就是说在对象无用和被终结之间的时间无法估计。
2) 终结器无法保证所有终结动作全部会发生,所以不应该使用终结器来更新关键的永续状态。
System.gc()和System.runFinalization()仅仅能够增加终结器执行的可能性,但还是不能确保,只有方法System.runFinalizersOnExit()和Run
随机文章:
Struts中的Action类 2004-04-05Struts 控制器 2004-04-05读《Effective Java》-笔记7 2004-04-05读《Effective Java》-笔记5 2004-03-07读《Effective Java》-笔记4 2004-03-06
收藏到:Del.icio.us







