博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java foreach与for循环性能对比
阅读量:5970 次
发布时间:2019-06-19

本文共 1528 字,大约阅读时间需要 5 分钟。

hot3.png

测试用例

List
list = new ArrayList<>();for (int i = 0; i < 10000000; i++) { list.add("value-" + i);}Long startTime = System.currentTimeMillis();for (String value : list) { if ("222".equals("222")) { if ("222".equals("222")) { if ("555".equals("555")) { if ("222".equals("222")) { value.concat("value"); } } } }}Long endTime = System.currentTimeMillis();System.out.println(endTime - startTime);Long startTime2 = System.currentTimeMillis();for (int i = 0; i < list.size(); i++) { if ("222".equals("222")) { if ("222".equals("222")) { if ("222".equals("222")) { if ("222".equals("222")) { if ("222".equals("222")) { if ("222".equals("222")) { String value = list.get(i); value.concat("value" + i); } } } } } }}Long endTime2 = System.currentTimeMillis();System.out.println(endTime2 - startTime2);Long startTime3 = System.currentTimeMillis();for (int i = 0, length = list.size(); i < length; i++) { if ("888".equals("888")) { if ("888".equals("888")) { if ("888".equals("888")) { if ("888".equals("888")) { if ("888".equals("888")) { if ("888".equals("888")) { String value = list.get(i); value.concat("value" + i); } } } } } }}Long endTime3 = System.currentTimeMillis();System.out.println(endTime3 - startTime3);

执行结果

2455516533Process finished with exit code 0

总结

明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。

  • 尽量减少对变量的重复计算
  • 对性能有要求时,建议使用 for 循环。

谢谢各位看官评论。

转载于:https://my.oschina.net/u/1033181/blog/1796371

你可能感兴趣的文章
Laravel php artisan optimize 源码解读
查看>>
在OR项目中使用火焰图
查看>>
Gson转换 — json数据转换为Object实体公共方法
查看>>
A-Frame.js 学习&文档翻译(一)实体
查看>>
微服务是否使SOA变得无关紧要?
查看>>
新项目配置
查看>>
移动端h5开发总结不断更新中....
查看>>
[elixir! #0037] Agent 小传
查看>>
koa2源码分析
查看>>
javascript自定义事件原理
查看>>
css 单行文本溢出显示省略号
查看>>
在虚拟机安装OpenSuse Tumbleweed
查看>>
新颖交互形式的H5案例浅析(技术分析)
查看>>
华为敏捷 DevOps 实践:产品经理如何开好敏捷回顾会议
查看>>
记住,永远不要在MySQL中使用“utf8”
查看>>
鸟哥:技术人员如何保持进步
查看>>
OpenAI披露最新研究成果:AI训练如何扩展到更大规模?
查看>>
用Chrome开发者工具调试一切
查看>>
让IE兼容background-size的方法_background-size ie下使用
查看>>
Live回顾 | 松鼠AI智适应教育首席科学家崔炜:人工智能如何变革教育产业
查看>>