JAVA中: for(;;) 与 while(true) 的 区别

结论:从编译后的字节码文件看,for(;;) 和 while(true) 在底层用的相同的实现,两种写法没有区别。

[b]1、for(;;)[/b]


@Test
public void test(){


for(;;){
System.out.println("for"+"+++");
}


}


编译后的字节码
public void test();
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String for+++
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: goto 0
LineNumberTable:
line 18: 0
LocalVariableTable:
Start Length Slot Name Signature
0 11 0 this Lcom/jj/jingcai/MyTest;
StackMapTable: number_of_entries = 1
frame_type = 0 /* same */
RuntimeVisibleAnnotations:
0: #17()


[b]2、while(true)[/b]

@Test
public void test(){


while (true){
System.out.println("while"+"---");
}


}



编译后的字节码
public void test();
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String while---
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: goto 0
LineNumberTable:
line 18: 0
LocalVariableTable:
Start Length Slot Name Signature
0 11 0 this Lcom/jj/jingcai/MyTest;
StackMapTable: number_of_entries = 1
frame_type = 0 /* same */
RuntimeVisibleAnnotations:
0: #17()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值