黑马程序员技术交流社区
标题:
关于io流的关闭问题
[打印本页]
作者:
郭军亮
时间:
2013-5-1 23:09
标题:
关于io流的关闭问题
本帖最后由 郭军亮 于 2013-5-2 20:55 编辑
InputStream in=new FileInputStream("aa.txt");
读取完以后,如果不进行in.close();操作,会造成什么情况?是否会造成内存泄露呢?
作者:
Jacky_Chen1990
时间:
2013-5-1 23:15
1.不关闭文件会浪费系统资源,与数据库连接资源类似。程序每执行一段代码都占用一部分内存,如果不关闭的话肯定会浪费内存的,而且如果有动态分配的内存,那还会造成内存泄露。
2.每个系统打开文件数量是有一限制的,如果打开文件不关闭,当连接数满的时候就无法再打开文件了。一般一个操作系统能最多打开1024个文件,但这个不一定,与机器硬件配置和系统配置有关。老点的机器只能同时打开256个或更低。
3.IO流也有独占模式,也就是锁的概念,打开一个文件流以后,如果是以读的模式打开那就是共享锁,其它程序也可访问读取;如果以写的模式打开一般为独占,其它程序不能访问.具体表现情况还要看操作系统或者应用程序是如何处理的,因为底层的程序和高层的程序不一样。
作者:
pthuakai
时间:
2013-5-2 08:21
这样会浪费资源。在开发中,这种浪费是不允许的。尤其是计算机刚开始的时候,内存是很贵的。所以对内存的使用非常的节省。虽然现在内存不贵了,但是,开发的时候还是要按照这个规则的。学数据结构,就是为了节省内存来的。这样可以优化性能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2