Java 优化 : local variable or function call

标签 java variables optimization

你会怎么做?

 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/

相关文章:

r - 如何在 R 中的 for 循环中实现可变步长?

MYSQL - 选择具有多个 OR 条件的查询很慢

java - 使用 sql 保存图像 hibernate (不要 hql)

java - 在 Java 中声明 boolean 变量的正确方法是什么?

java - 我初始化了局部变量,但仍然得到 "variable might not have been initialized"

javascript - 在 HTML 元素中使用 Jquery 添加值的最快方法是什么?

python - 使用 eval 优化 Python 读取大文件

java - 如何在 Java 中使用 Selenium webdriver 下载 .docx 文件?

java - ReactJS 客户端无法与 Java Web 服务通信

java - 在无序列表中查找缺失的数字