A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逸俊逍全 中级黑马   /  2013-12-22 22:48  /  931 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问finally的清理工作和Java提供的垃圾回收器会冲突不?

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

2 个回复

正序浏览
不会冲突,再finally里面你可以做你自己想做的清理工作,那么在这个在这个里面可能会有你遗漏掉的清理工作。你遗漏掉了,java的垃圾回收机制会自动帮你清理。
回复 使用道具 举报

RE: 关于finally关键字

首先finally中的操作不一定全是清理工作。
如果是清理工作,也不会和java的垃圾回收机制冲突。
比如:
当一个临时文件在读取的过程中发生异常,程序不能继续向下执行,但是需要删除该临时文件。
可以在finally代码块中调用file.delete()操作完成对文件的删除。
但是!!!
该文件是在读取的过程中发生异常,该文件的占有权还没有被释放,所以delete()操作时删不掉此文件的。
但是可以使用deleteOnExit()操作实现,在程序退出时删除该文件。
所以通过这个例子就可以看出来,这两个是不会冲突的哦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马