你会怎么做?
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()可能有一段时间不同的结果。
getInstructions()