在JDK8U JDK项目下进行非常粗略的搜索:
并不多。
其次,java中的(;;)的来源是个人意见是,喜欢这种方式的人,追逐根部的人会受到C语言的写作影响。这些人可能在写作之前不可用来以这种方式写作c,但可以用这种方式写来写撰写C的老师和前任的影响。
在C语言中,如果您不包含某些标题文件或您自己的语句,则没有构建的 - bool / bool类型,也没有bool / bool类型的类型true / bool / bool类型的值没有包含的标头文件或定义具有上述面团,这是一定的语句,该语句不会在(...)括号内编写圆形条件。最常见的是:
但是,并不是每个人都喜欢看到魔术“ 1”。使用(;;;)表达它不写圆形条件(即,即循环中的断裂或goto)非常直观。这是for语句本身的函数,它不需要编写任何魔术数字。
因此,这篇文章被传承下来。
顺便说一句,在Java中,我倾向于写一会儿(true),但我不介意其他人在自己的项目中写作(;;)。
至于for(;;)以及Java中的(true),哪一个更快?
这种规范没有指定这个问题,答案是“看到实现”。毕竟,只要语义符合规格,效率就不在管理规范的类别中。根据Oracle / Sun JDK8U / OpenJDK8U的实施,判断,首先要查看Javac的汇编结果:以下两个陈述:
和
即使是Javac,几乎没有优化(仅持续折叠Java语言规格,以及非常少量的优化)编译器。
不用说,解释执行,JIT汇编等,输入是相同的,输出不会有所不同。
作者:RednaxLafx
链接:zhihu.com/question/52311366/aanswer/130090347