java - 哪个 for 循环头性能更好?

标签 java for-loop compiler-optimization

我在 Android 文档中经常看到以下内容:

int n = getCount();

for (int i = 0; i < n; i ++) {
    // do somthing
}

但我习惯了看到和做:

for (int i = 0; i < getCount(); i ++) {
    // do somthing
}

我很好奇其中一个是否比另一个更有效率?这两种情况到底发生了什么?当您以第二种方式调用getCount()时,计算机是否必须分配另一个变量?或者这只是代码整洁度或偏好的问题?

最佳答案

第一个比另一个更有效。

在第一种情况下,您只调用 getCount 一次,而在第二种情况下,您为每个条件检查调用 getCount,这会增加循环的执行时间。

关于java - 哪个 for 循环头性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506401/

相关文章:

java - 将一个数组列表相对于另一个数组列表进行排序

java - 从 android studio 中的图库获取图像 - 不相关的代码

javascript - For 循环工作并返回结果,但随后停止并返回 - TypeError : Cannot read property 'tag' of undefined

compiler-optimization - GCD 测试 - 测试循环语句之间的依赖关系

c - 冗余分配消除是相当典型的优化吗?

java - 使用复杂的 XML/JSON 进行 SmartGWT 数据检索

java - plsql 远程调试断点不起作用

java - 具有求和功能的 For 循环

java - 减慢 Java For 循环中对象的移动速度

c++ - 如何让编译器使用 std::map 进行循环不变代码运动?