Java中for(;;)与while(true)的区别
for(;;)与while(true)在java中只看个人喜好,二者没区别!
请看下图:
编译后的字节码都一样,根本没有什么区别。
但为啥网上有的人说二者有区别呢?
那是因为在C语言中
编译前 编译后 while (1); mov eax,1 test eax,eax je foo+23h jmp foo+18h
编译前 编译后 for (;;); jmp foo+23h
相对而言,for(;;)指令少,不占用寄存器,没有判断跳转,因此比while(1)好一些。