0

想知道访问实例变量或在本地存储其值是否更好。例如:

方法1:

while (ctr < arr.length ) {
   sysout(arr[ctr++]);
}

对比

方法2:

int length = arr.length
while (ctr < length) {
   sysout(arr[ctr++];
} 

看起来 Method1 更干净,因为它不需要任何额外的变量声明。在这种情况下,使用方法 2 有什么好处吗?

为了使问题具有通用性,在这种情况下,最佳实践是什么?

谢谢,

4

2 回答 2

5

答:没关系。

要么编译器将其编译为完全相同的字节码(在这种情况下,这很可能),要么 JIT 将在运行时将其踢出并使这两种解决方案等效。

使用 Java 时,您的主要目标是编写显然正确的代码。让编译器和 JIT 处理性能。

于 2013-06-08T20:46:43.913 回答
1

我猜第二种方法要快一些,因为在第二种情况下,运行时不必arr.length每次在循环中执行。然而,差异是非常微不足道的。由于length数组的属性类似于它的public final member,因此获取它length是一个恒定时间操作。如果你这样做了,情况就会不同list.size()

于 2013-06-08T20:46:42.473 回答