你会怎么做?
doThings(folder.getInstructions()) ;
for (Instruction instruction : folder.getInstructions()) {
// do things
}
functionCall(folder.getInstructions()) ;
或这个 :
instructions = folder.getInstructions() ;
doThings(instructions)
for (Instruction instruction : instructions) {
// do things
}
functionCall(instructions) ;
最重要的是,我想知道何时在本地变量中存储值更有效,何时进行函数调用更好。
最佳答案
更具可读性更有效。临时表达式和局部变量需要相同的空间,从CPU/JVM的角度看,它们并没有太大的区别。 JVM将在优化/内嵌方面做得更好。
但是,如果getInstructions()
方法调用很昂贵,则将其缓存在本地变量中。如果这只是一个简单的方法,那么无论如何它都会被内联。同样,在您的特殊情况下,恕我直言,如果getInstructions()
随时间推移可能会产生不同的结果,则局部变量更具可读性,甚至可能更正确。