在JDK8u的jdk项目下做个很粗略的搜索:

并没有差多少。

其次,for (;;) 在Java中的来源。个人看法是喜欢用这种写法的人,追根溯源是受到C语言里的写法的影响。这些人不一定是自己以前写C习惯了这样写,而可能是间接受以前写C的老师、前辈的影响而习惯这样写的。

在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的。所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样:

while (1) {

/* ... */

}

但不是所有人都喜欢看到那个魔数“1”的。而用for (;;)来表达不写循环条件(也就是循环体内不用break或goto就会是无限循环)则非常直观,这就是for语句本身的功能,而且不需要写任何魔数。

所以,这个写法就流传下来了。

顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。

至于Java里的for (;;)while (true),哪个更快?

这种规范没有规定的问题,答案都是“看实现”,毕竟实现只要保证语义符合规范就行了,而效率并不在规范管得着的范畴内。以Oracle/Sun JDK8u / OpenJDK8u的实现来看,首先看javac对下面俩语句的编译结果:

连javac这种几乎什么优化都不做(只做了Java语言规范规定一定要做的常量折叠,和非常少量别的优化)的编译器,对上面俩版本的代码都生成了一样的字节码。

后面到解释执行、JIT编译之类的就不用说了,输入都一样,输出也不会不同。

 为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

Java里的 for (;;) 与 while (true),哪个更快?相关推荐

  1. Java 里的 for (;;) 与 while (true),哪个更快?

    点击关注公众号,Java干货及时送达 在JDK8u的jdk项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr " ...

  2. 快手二面:Java 里的 for (;;) 与 while (true),哪个更快?

    转自:知乎 www.zhihu.com/question/52311366/answer/1300903 在 JDK8u 的 jdk 项目下做个很粗略的搜索: mymbp:/Users/me/work ...

  3. Java VS Go,微服务究竟谁更快?

    作者 | 程序猿DD   责编 | 张文 头图 | CSDN 下载自视觉中国 Java 微服务能像 Go 微服务一样快吗?这是我最近一直在思索的一个问题. 去年 8 月份的 the Oracle Gr ...

  4. java 加载中_Java 6类加载中更快的是什么?

    小编典典 Java 6编译器将预验证信息添加到类文件中 如果Java虚拟机实现曾经尝试对50.0版类文件执行通过类型推断的验证,则在通过类型检查的验证失败的所有情况下都必须这样做. 这意味着Java虚 ...

  5. java native堆_Java Native Memory比堆更快吗?

    执行IO时,直接内存更快,因为它可以避免一个数据副本.但是,对于95%的申请,您不会注意到差异. 您可以将数据存储在直接内存中,但是它不会比存储数据POJO快. (或安全,可读或可维护)如果您担心GC ...

  6. bool在哪个头文件_Java里的 for (;;) 与 while (true),哪个更快?

    点击上方"朱小厮的博客",选择"设为星标" 做积极的人,而不是积极废人! 本文来自: https://www.zhihu.com/question/523113 ...

  7. getdevicecaps在哪个头文件里_一招定胜负,while (true) 和 for (;;) 到底哪个更快

    在JDK8u的jdk项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src$ egrep -nr "for (s?;s?;" . ...

  8. while (true) 和 for (;;) 到底哪个更快?

    作者 | RednaxelaFX 来源 | https://zhihu.com/question/52311366/answer/130090347 在JDK8u的jdk项目下做个很粗略的搜索: my ...

  9. 琢磨琢磨,while (true) 和 for (;;) 哪个更快?!

    在JDK8u的jdk项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "for \\(\\s?;\\s?;&q ...

最新文章

  1. php数字截取2位小树,数据结构-PHP 二分搜索树的层序遍历(队列实现)
  2. 保存一下dedecms数据库表和字段说明,方便日后查询
  3. keras ImageDataGenerator 用法
  4. SAP批次级别的意义及启用操作
  5. C语言试题四十之使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
  6. *【计蒜客 - 蓝桥训练】人以群分(二分 + dp)
  7. [转载] python导入numpy函数库
  8. 微信小程序云开发教程-云函数获取用户授权信息
  9. mongodb索引 多健索引
  10. 下载npm并配置npm环境
  11. MyBatis事务管理
  12. 编程语言分类-编译型,解释型
  13. 如何在 2 分钟内入睡(二战时期美国飞行员训练法)
  14. 乐高无限自己地图无法服务器,乐高无限地图制作攻略 建造的小细节不要错过...
  15. java红宝石是哪本_以月/年红宝石显示帖子
  16. DS18B20的使用介绍
  17. android工程文件assts,应用程序基础androiddevelopers英文翻译本科论文.docx
  18. java后台 apiV3 对接微信app支付
  19. 生日快乐程序_「秒福」小程序:送祝福,2020我们不一样
  20. 第7期——AP上线过程

热门文章

  1. .net打包自动安装数据库
  2. spring-security-学习笔记-01-基本概念
  3. Vue前后端对接时判断是否与后端连接成功
  4. 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统
  5. get和post的联系与区别
  6. python嵌套列表法实现树_python – 将嵌套的括号树转换为嵌套列表
  7. openvino安装小记
  8. 创建启动oracle快捷方式,GNOME3创建连接OracleFS管理软件启动快捷方式
  9. python的matplotlib生成colorbar
  10. Halcon学习笔记(一):Qt+Halcon联合开发配置