我想知道多次访问 array[i] 中的值或将该值存储为新变量 (v=array[i]) 并多次访问变量 v 是否会花费更多?
例如(在java中),这样写会更好吗:
int [] array = {1,2,3,4,5};
for(int i=0;i<5;i++){
if (array[i]<0){
System.out.println("negativ");
}else if(array[i]>0){
System.out.println("positiv");
if (array[i]==42){
System.out.println("great answer");
}
}else{
System.out.println("zero");
}
}
或
int [] array = {1,2,3,4,5};
int v;
for(int i=0;i<5;i++){
v = array[i];
if (v<0){
System.out.println("negativ");
}else if(v>0){
System.out.println("positiv");
if (v==42){
System.out.println("great answer");
}
}else{
System.out.println("zero");
}
}
感谢您的帮助。
最佳答案
您最终会使用第二种形式多占用两个字节:
34: istore_2
35: iload_2
变量访问最终成为 iaload 与 iload_2 - 差别不大。如果您有足够的变量(超过 4 个),则必须使用 iload(索引)而不是 iload_,那么您会看到第二种形式的更大代码。
明确地说:您不会通过引入变量来保存任何内容,实际上是添加指令(设置变量的位置)。
关于java - 是多次访问 array[i] 中的值,还是将该值存储在变量 (v=array[i]) 中并访问该变量 v 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510260/