Mun*_*ong 9 java iteration performance instantiation
我想阅读文件并处理它们.每次迭代都处理一个文档.
哪种代码更好?
1.
BufferedReader br;
for(File f : files)
{
br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
2.
for(File f : files)
{
BufferedReader br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
我的观点是哪一个在空间和速度方面更有效率?
Jon*_*eet 11
在我看来,后者更清晰.通常,更喜欢声明具有最小范围的局部变量,理想情况是在声明时初始化它们.
它不会直接影响性能-但它会影响可读性和维护,这将影响难易程度,您可以更改它会影响性能.
一般来说:
在代码优化中,很容易陷入Win Small,Lose Big的陷阱:每个单独的方法都可以优化到完美,但由于全局架构的不足,整体系统性能可能仍然是一场灾难.必须始终优化自上而下,并且在这样做时,您将看到如果被优化版本替换,只有1%或更少的代码行实际上可以对整体性能做出贡献.
如果您不在br其他地方使用该变量,则它们完全相同。
请注意不要在尝试纳米优化上浪费太多时间。即使字节码不同,JIT 在优化显而易见的内容时也不会那么糟糕。您不需要在使用变量的块之前声明变量,也不应该这样做,因为这会让人不太清楚它的用途。