哪一个更有效率?用于for循环的缓存方法调用结果

use*_*672 2 java performance

差异可能微乎其微或不存在,但哪一个更有效,为什么?

int nItems = param.getItemList().size();
for (...) {
    if (nitems == 1) doSomething();
}
Run Code Online (Sandbox Code Playgroud)

要么

for (...) {
    if (param.getItemList().size() == 1) doSomething();
}  
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 8

从理论上讲,第一个会更快(你有没有描述它?你应该!),因为它在循环之外拉出一个经常使用的方法调用.但是,如果有足够的时间,JIT编译器可能会优化/内联方法调用,使两个解决方案在性能方面无法区分.

这种微观微观优化不值得努力,更好地瞄准解决方案,使其更清晰,更易于理解.哪个恕我直言恰好是第一个.