Java:for(;;) 与 while(true)

标签 java for-loop while-loop

标准的 while(true) 循环和 for(;;) 有什么区别?

有没有,或者编译后都会映射到同一个字节码?

最佳答案

在语义上,它们是完全等价的。这是一个品味问题,但我认为 while(true) 看起来更干净,并且乍一看更容易阅读和理解。在 Java 中,它们都不会导致编译器警告。

在字节码级别,它可能取决于编译器和优化级别,但原则上发出的代码应该是相同的。

编辑:

在我的编译器上,使用 Bytecode Outline插件,for(;;){} 的字节码如下所示:

   L0
    LINENUMBER 6 L0
   FRAME SAME
    GOTO L0

while(true){} 的字节码如下所示:

   L0
    LINENUMBER 6 L0
   FRAME SAME
    GOTO L0

所以是的,至少对我来说,它们是相同的。

关于Java:for(;;) 与 while(true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880870/

相关文章:

java - 无法使用 Ansible 在远程主机中使用 Maven 进行打包

字符串金字塔中的java计数器

javascript - 用于定时横幅动画的 Jquery Loop

php - 如何让 php 在循环外回显值?

java - JAXB2,如何根据包含 xsd :any element? 的 XML 架构进行部分验证

java - 从经典的多线程到java.nio异步/非阻塞服务器

java - 在Android中,直到startactivity Intent 完成后, fragment 加载动画才会开始

python - 为什么我的 python 循环出现索引错误?

c++ - 在 C++ 中嵌套 for()

php - 没有找到结果,为什么我的 echo 不起作用?