gpt4 book ai didi

java - 这两个 Java 代码哪个更快?

转载 作者:行者123 更新时间:2023-11-29 08:28:30 25 4
gpt4 key购买 nike

从理论上和实践上哪个代码更快:

class ABC{
File file;

void method(){
file = new File();
}
}

class ABC{

void method(){
File file = new File();
}
}

其中类 ABC 仅实例化一次。但是该实例的 method() 被多次调用。注意:我知道在这种情况下速度实际上是无关紧要的。

最佳答案

性能差异不太重要。

在第一个版本中,直到下一次调用 method 时,才会有对 File 对象的有效引用,但是之前的对象仍然需要是垃圾- 更换后收集。在第二个版本中,File 对象在 method 完成时被孤立,可以被垃圾回收。

因此第一个版本意味着只要 ABC 实例存在,您将始终有至少一个不可收集的 File 对象留在内存中。不过,这不太可能是个大问题,除非 File 消耗了不可忽略的内存量(它只包含文件的路径和名称。缓冲文件内容是 BufferedReader 的工作)并且你保留了很多 ABC 实例。

不过,您应该担心的是代码的清晰度。一般规则是每个变量都应具有尽可能小的范围。当它可以是局部变量时,那么它应该是局部变量。原因是范围越小,可能影响其值的代码就越少,这使得应用程序更容易调试。当您遇到 file 突然没有获得您期望的值的错误时,您只需检查一个方法,而不是整个类。

关于java - 这两个 Java 代码哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com