在循环内声明一个变量是好的还是在 Java 中即时声明是最优的。此外,在循环内声明时是否会涉及任何性能成本?
例如。
选项 1:循环外
List list = new ArrayList();
int value;
//populate list
for(int i = 0 ; i < list.size(); i++) {
value = list.get(i);
System.out.println(“value is ”+ value);
}
选项 2:在循环内
List list = new ArrayList();
//populate list
for(int i = 0; i < list.size(); i++) {
int value = list.get(i);
System.out.println(“value is ”+ value);
}
最佳答案
在Clean Code , Robert C. Martin 建议 Java 编码人员在尽可能靠近使用它们的地方声明变量。变量的范围不应超过必要的范围。在变量的使用位置附近声明变量有助于为读者提供类型和初始化信息。不要太在意性能,因为 JVM 非常擅长优化这些东西。而是关注可读性。
顺便说一句:如果您使用的是 Java 5 或更高版本,则可以使用以下 Java-5 的新功能显着精简您的代码示例:
- foreach 结构
- 泛型
- 自动装箱
我重构了您的示例以使用上述新功能。
List<Integer> list = new ArrayList<Integer>();
// populate list
for (int value : list) {
System.out.println("value is " + value);
}
关于java - 哪个是最优的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1885912/