求教! for(int i=0;i<array.length;i++)与
int length=array.length;for(int i=0;i<length;i++)哪个效率更高?
public class Print {
public static void main(String[] args) {
int[] arr = new int[1000];
long time = System.currentTimeMillis();
for(int i = 0;i<arr.length;i++)
System.out.print(1);
long end = System.currentTimeMillis();
time = end-time;
System.out.println();
System.out.println("time:"+time);
time = System.currentTimeMillis();
int len = arr.length;
for(int i = 0;i<len;i++)
System.out.print(1);
end = System.currentTimeMillis();
time = end-time;
System.out.println();
System.out.println("time:"+time);
}
}
答案显而易见
首先,第一种写法由于在循环过程中会重复计算N次array.length,所以这一点来看,后一种写法更好一些。
其次,以现在计算机的计算速度来看,两种写法的效率上是没有多大的区别的。
结论就是:建议养成后一种写法的习惯,万一array.length要在循环以外的地方使用呢?
个人感觉这点性能差别可以忽略,真正开发时肯定还是怎么顺手怎么来。我是不会写第二种。