黑马程序员技术交流社区

标题: 关于finally关键字 [打印本页]

作者: 逸俊逍全    时间: 2013-12-22 22:48
标题: 关于finally关键字
请问finally的清理工作和Java提供的垃圾回收器会冲突不?
作者: smileven    时间: 2013-12-22 23:03
标题: RE: 关于finally关键字
首先finally中的操作不一定全是清理工作。
如果是清理工作,也不会和java的垃圾回收机制冲突。
比如:
当一个临时文件在读取的过程中发生异常,程序不能继续向下执行,但是需要删除该临时文件。
可以在finally代码块中调用file.delete()操作完成对文件的删除。
但是!!!
该文件是在读取的过程中发生异常,该文件的占有权还没有被释放,所以delete()操作时删不掉此文件的。
但是可以使用deleteOnExit()操作实现,在程序退出时删除该文件。
所以通过这个例子就可以看出来,这两个是不会冲突的哦!

作者: 恩恩    时间: 2013-12-22 23:43
不会冲突,再finally里面你可以做你自己想做的清理工作,那么在这个在这个里面可能会有你遗漏掉的清理工作。你遗漏掉了,java的垃圾回收机制会自动帮你清理。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2