Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重复方法调用VS局部变量_Java_Performance_Variables_Methods - Fatal编程技术网

Java 重复方法调用VS局部变量

Java 重复方法调用VS局部变量,java,performance,variables,methods,Java,Performance,Variables,Methods,多次调用同一个方法而不是创建局部变量是一个问题。我的意思是在性能方面 int myLocalVarieble = bar.getLocalVariable(); foo1.setAttribute(myLocalVariable); foo2.setAttribute(myLocalVariable); 或 取决于调用getLocalVariable()的成本。对于这个特定的例子,这似乎相对便宜,因为它是一个简单的getter,所以没有什么害处 但是,假设getLocalVariable()需

多次调用同一个方法而不是创建局部变量是一个问题。我的意思是在性能方面

int myLocalVarieble = bar.getLocalVariable();
foo1.setAttribute(myLocalVariable);
foo2.setAttribute(myLocalVariable);


取决于调用getLocalVariable()的成本。对于这个特定的例子,这似乎相对便宜,因为它是一个简单的getter,所以没有什么害处

但是,假设getLocalVariable()需要30秒才能返回,那么第一个示例更可取。

如果
getLocalVariable()
本身有很大的性能开销,或者如果它可能在调用之间更改其值,您可能希望避免调用它两次。否则,这无关紧要。您最好使用JMH并创建基准测试方法来测试您的特定案例。
foo1.setAttribute(bar.getLocalVariable());
foo2.setAttribute(bar.getLocalVariable());