小编典典

Java优化:局部变量或函数调用

java

你会怎么做?

 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) ;

最重要的是,我想知道何时在本地变量中存储值更有效,何时进行函数调用更好。


阅读 216

收藏
2020-11-16

共1个答案

小编典典

更具可读性更有效。临时表达式和局部变量需要相同的空间,从CPU / JVM的角度看,它们并没有太大区别。JVM将在优化/内嵌方面做得更好。

但是,如果getInstructions()方法调用很昂贵,则将其 缓存
在局部变量中。如果这只是一个简单的方法,无论如何都会内联。你的具体情况也恕我直言,局部变量
更具可读性,甚至可能更正确的,如果getInstructions()可能有一段时间不同的结果。

2020-11-16