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)好一些。
浙公网安备 33010602011771号