您的位置:首页 > 产品设计 > UI/UE

for(;;) 和 while(true) 的区别

2018-01-13 09:50 316 查看
在标准的语义上是完全等价的;

那我们就来看一下在jvm级别上是不是等价的;

for(;;){}的编译结果

flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=1, args_size=1
0: goto          0
LineNumberTable:
line 3: 0
StackMapTable: number_of_entries = 1
frame_type = 0 /* same */


while(true){}的编译结果

flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=1, args_size=1
0: goto          0
LineNumberTable:
line 3: 0
StackMapTable: number_of_entries = 1
frame_type = 0 /* same */


看起来没有什么不同,实际上也是一样.没有什么不同

但是 while(true)在C和C ++(C#?)的最高设置的编译警告。

也许对于Java来说不是一个问题,但是如果你有时候用其他语言写的话,for(;;)是一个更好的开发习惯。

最后再说一下,两者使用没有区别,实践中使用哪个自己喜欢就好.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: