奋斗吧!小蜗牛

导航

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)好一些。

posted on 2020-10-29 18:27  奋斗的小强  阅读(156)  评论(0编辑  收藏  举报