将变量值保存在变量中而不是多次调用是否更好?

时间:2013-04-23 11:20:30

标签: java variables optimization getter

我有Item项目;它有getName()getter。我需要在某个循环中访问item.getName()。最好每次在循环中调用item.getName(),还是将其保存在附加变量中并使用该变量,是否存在差异?

例如: 项目项目;

String itemName=item.getName();

for(int i=0;  i< itemArray.size();i++){

    itemArray.get(i).setName(itemName);
}

for(int i=0; i< itemArray.size();i++){

    itemArray.get(i).setName(item.getName());
}

3 个答案:

答案 0 :(得分:2)

如果你要在循环中反复重新分配item,那么你需要使用item.getName(),否则你只需将值存储在局部变量中,然后使用它在循环。如果你不会改变它的价值,那么你也可以final。{/ p>

<强> E.g:

final String name = item.getName();
while(comdition){ // some loop
    // something involving name. But not modifying it.
}

答案 1 :(得分:1)

使用item.getName()时,您将始终获得当前的新值。在迭代它时将其保存到附加变量可能不会看到更改。如果这是你的意图,那就确定并将其声明为final,因为它是线程安全的。 否则我不认为这将是一个很大的性能问题。继续使用吸气剂。

答案 2 :(得分:0)

您更喜欢哪一个?

String itemName;

for(int i=0;i<itemArray.size();i++){
   itemName=itemArray.get(i).getName();
   System.out.println(itemName);
}

for(int i=0;i<itemArray.size();i++){
   System.out.println(itemArray.get(i).getName);
}