加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 23:44:03 所属栏目:Java 来源:网络整理
导读:只是试图理清我在这里的一个小分类. 目前,我正在开发一个涉及将文件列表收集到内存中的应用程序,以便删除.现在,在这一点上,我认为java.io.File数组可能会占用太多内存,因为此上下文中的Files列表可能包含数百个可能的条目. 我没有使用File对象列表吃掉过多的
只是试图理清我在这里的一个小分类.

目前,我正在开发一个涉及将文件列表收集到内存中的应用程序,以便删除.现在,在这一点上,我认为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路径的包装器.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读