你会怎么做?
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()
方法调用开销很大,将其缓存 在局部变量中。如果它只是一个普通的 getter,它无论如何都会被内联。恕我直言,在您的特定情况下,局部变量 更具可读性,如果 getInstructions()
可能随着时间的推移产生不同的结果,则可能更正确。
关于Java 优化 : local variable or function call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705517/