差异可能很小或不存在,但哪个更有效,为什么?
int nItems = param.getItemList().size();
for (...) {
if (nitems == 1) doSomething();
}
或
for (...) {
if (param.getItemList().size() == 1) doSomething();
}
最佳答案
理论上第一个会更快(你分析过它吗?你应该!),因为它将一个经常使用的方法调用拉到循环之外。但是,如果有足够的时间,JIT 编译器可能会优化/内联方法调用,从而使两种解决方案在性能方面无法区分。
这种微观优化不值得付出努力,最好以更清晰、更易于理解的解决方案为目标。恕我直言,哪个恰好是第一个。
关于java - 哪一个更有效率?缓存for循环中使用的方法调用结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022606/