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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭军亮 中级黑马   /  2013-5-1 23:09  /  1081 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭军亮 于 2013-5-2 20:55 编辑

InputStream in=new FileInputStream("aa.txt");
读取完以后,如果不进行in.close();操作,会造成什么情况?是否会造成内存泄露呢?

3 个回复

倒序浏览
1.不关闭文件会浪费系统资源,与数据库连接资源类似。程序每执行一段代码都占用一部分内存,如果不关闭的话肯定会浪费内存的,而且如果有动态分配的内存,那还会造成内存泄露。

2.每个系统打开文件数量是有一限制的,如果打开文件不关闭,当连接数满的时候就无法再打开文件了。一般一个操作系统能最多打开1024个文件,但这个不一定,与机器硬件配置和系统配置有关。老点的机器只能同时打开256个或更低。

3.IO流也有独占模式,也就是锁的概念,打开一个文件流以后,如果是以读的模式打开那就是共享锁,其它程序也可访问读取;如果以写的模式打开一般为独占,其它程序不能访问.具体表现情况还要看操作系统或者应用程序是如何处理的,因为底层的程序和高层的程序不一样。
回复 使用道具 举报
这样会浪费资源。在开发中,这种浪费是不允许的。尤其是计算机刚开始的时候,内存是很贵的。所以对内存的使用非常的节省。虽然现在内存不贵了,但是,开发的时候还是要按照这个规则的。学数据结构,就是为了节省内存来的。这样可以优化性能。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马