微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开销与代码速度(java.io.File数组与java.lang.String数组)

只是试图理清我在这里一个分类.

目前,我正在开发一个涉及将文件列表收集到内存中的应用程序,以便删除.现在,在这一点上,我认为java.io.File数组可能会占用太多内存,因为此上下文中的Files列表可能包含数百个可能的条目.

我没有使用File对象列表吃掉过多的内存,而是认为收集文件名列表并将它们存储为java.lang.String对内存来说会更便宜.现在,这是我的问题:要记住这些文件删除,哪些文件会更便宜:

>存储一个File对象而不是String对象,并调用.delete();循环中的每一个(使用太多的内存).
>使用文件名存储String对象数组,但是对于循环的每次迭代,使用文件名列表创建一个新的File对象,并调用.delete();在该文件上(这意味着每次循环迭代时,都会创建并销毁一个新的File对象 – 可能使用的处理器功率太大).

我想尽可能快地使程序,所以任何一种方法都有其优点,我只想看看哪些方法的开销最小.提前致谢!

解决方法

java.io.File表示文件系统中条目的文件名信息/元数据,它不包含文件内容.

换句话说,像新文件(“somelarge.txt”)这样的代码不会将somelarge.txt文件加载到内存中.

每个File对象包含的唯一真实数据是File的String路径(以及transient int prefixLength) – 认为File类只是知道如何调用所有文件系统操作的String路径的包装器.

除了其他一些要求之外,这里的最佳选择是最容易阅读的代码并最好地传达您的意图.

原文地址:https://www.jb51.cc/java/127418.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐