java

for(;;) 与 while(true)

2019-08-23  本文已影响0人  Uning

总结 for(;;) 比 while(true) 好

为啥:如下(底层完全不同)

“死循环”有两种写法:for(;;)和while(true),
两者有啥区别,为啥源码中多数是for( ; ; )这种形式的,

编译前 编译后

while (1);         mov eax,1  
                    test eax,eax 
                    je foo+23h
                    jmp foo+18h
for (;;);          jmp foo+23h   

对比之下,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。

也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。

原文地址 https://yq.aliyun.com/articles/637728

上一篇下一篇

猜你喜欢

热点阅读