Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 局部变量还是重复调用?_Java_Performance - Fatal编程技术网

Java 局部变量还是重复调用?

Java 局部变量还是重复调用?,java,performance,Java,Performance,我有一个非常基本的问题。如果以下2项性能更好: if (getSomeValue() != null) { processSomeValue(getSomeValue()); } 或 getSomeValue()是一个普通的getter,它不做任何其他事情。最佳做法是,即使您已经知道getSomeValue()是一个简单的getter,也要始终使用第二种方法。关键的一点是,这个电话将来可能会被维护,将来可能会被人更改。如果更改getSomeValue()的内部代码,任何开发人员都可能不

我有一个非常基本的问题。如果以下2项性能更好:

if (getSomeValue() != null) {
    processSomeValue(getSomeValue());
}


getSomeValue()是一个普通的getter,它不做任何其他事情。

最佳做法是,即使您已经知道getSomeValue()是一个简单的getter,也要始终使用第二种方法。关键的一点是,这个电话将来可能会被维护,将来可能会被人更改。如果更改getSomeValue()的内部代码,任何开发人员都可能不知道您当前使用的调用方法。

我怀疑会有多大区别。也许如果getter将执行一些繁重的任务,并且这个片段在循环中被调用了数百万次。。。对我来说,这似乎是过早的优化。或者你们是在试图解决代码风格上的争论?若只是一个getter,那个么这种差异就无关紧要了。它和性能无关,除非
getSomeValue()
是一个昂贵的调用。通常是2号,但可能是一个微不足道的数量,或者是一个很大的数量,取决于
getSomeValue
正在做的事情,例如DB Lookup@AndyTurner另外,对getSomeValue的两个调用可能会产生不同的结果(关于并发性问题)。
String someValue = getSomeValue();
if (someValue != null) {
    processSomeValue(someValue);
}