将循环中不变的计算(如list.size()、array.length)提前赋值为局部变量,避免重复计算,可显著提升性能。错误写法:for (int i = 0; i
直接把循环条件中会重复计算的部分提前算好,存成局部变量再用,就能避开反复执行带来的开销。
把不变的计算结果提出来
比如
list.size()、array.length或某个固定方法调用,在循环里每次判断都重新执行,其实值根本没变。提前赋值一次,后面只读变量,效率明显提升。
- 错误写法:
for (int i = 0; i- 正确写法:
int size = list.size(); for (int i = 0; i耗时操作坚决移出循环体
如果条件里涉及数据库查询、正则匹配、对象克隆或复杂运算,哪怕只执行一次也比在循环里反复跑强得多。尤其注意静态工具类方法或外部服务调用,别让它混进
for的判断逻辑里。
Alibabacloud Sdk Client Initialization For Java下载在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 例如:
boolean valid = validateConfig();放在循环前,而不是写成if (validateConfig())在循环内反复调用- 再如:
Pattern pattern = Pattern.compile("...");预编译后复用,别在每次迭代里重新 compile优先选用增强 for 循环(for-each)
对集合或数组遍历时,不用手动维护索引和边界判断,自然就规避了
i 这类易错又低效的写法。JVM 对它的底层优化也更成熟。
- 适用场景:只需要逐个访问元素,不依赖下标
- 注意点:不能在遍历中修改集合结构(如 remove/add),否则抛
ConcurrentModificationException嵌套循环注意内外层顺序
外层循环次数越少越好,内层可多些。因为外层每次迭代都会触发内层完整执行——如果外层是十万次、内层是十次,总操作量是一百万;反过来,外层十次、内层十万次,总量不变,但 JVM 分支预测和缓存命中率更高,实际耗时更低。
- 推荐:
for (int i = 0; i- 避免:
for (int i = 0; i
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












