IAm*_*aja 0 java file-io memory-leaks
我使用a StringBuilder来创建一个File对象,但我也用它来查看该文件所在的目录是否存在:
StringBuilder sbFile = new StringBuilder();
sbFile.append("/home/logs/");
File oFile = new File(sbFile.toString());
if(!oFile.exists())
oFile.mkdir();
sbFile.append("MyLogFile.log");
oFile = new File(sbFile.toString());
Run Code Online (Sandbox Code Playgroud)
但我担心oFile在字符串生成器(/home/logs/vs /home/logs/MyLogFile.log)的两个不同"版本"上重用相同的引用会产生内存泄漏.如果是这样,我该怎么写这个呢?
没有内存泄漏.File第一次创建的实例将在不再使用时由JVM进行垃圾收集.
另一件事是你真的不需要使用StringBuilder.Fileclass有一个构造函数,它接受父文件和文件名.您的示例可能如下所示:
File parent = new File("/home/logs/");
if(!parent.exists())
parent.mkdir();
File file = new File(parent, "MyLogFile.log");
// TODO: do something with file...
Run Code Online (Sandbox Code Playgroud)
此外,您可能对Java中垃圾收集的工作方式感兴趣.
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |