首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2.7 不用使用finalize()

2013-08-04 
2.7 不要使用finalize()不使用的理由:1.不能确定finalize()什么时候被执行2.不能保证finalize()一定会被执

2.7 不要使用finalize()

不使用的理由:

1.不能确定finalize()什么时候被执行

2.不能保证finalize()一定会被执行

3.使用finalize()严重影响性能

4.如果执行finalize()抛出异常,异常被忽略(不会有任何提示),此方法立刻终止执行,导致对象状态不一致

?

在以下情况可以谨慎使用:

1.如InputStream,如果编程者忘记调用close(),可以在finalize()里调用close()释放资源

2.在finalize()里调用native peer(指JNI里与Java对象对应的本地对象)的方法释放本地资源

热点排行