上面的代码中使用while True构造了一个条件恒成立的循环,也就意味着如果不做特殊处理,循环是不会结束...
for(;;)和while(true)区别 从寓意上来看,两种写法都是无限循环 从效率上看,while(true)每次循环要判断循环条件,for(;;)循环没有判断,理论上节省机器指令。 下面我们就通过查看编译后的代码,来证明以下for(;;)和while(true)的区别 首先整理一个带编译的测试代码,如下 通过javac 将Test.java 编译成Test.class ...
也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。
Java中for和while循环语句的区别 从内存使用角度 for循环结束,循环中变量及时从内存中释放掉,在for循环的外面不能再访问这个变量; 而while循环和do...while()循环结束,还能去访问这个变量,等待GC空闲时,释放这个变量。 从适用场景 如果是一个明确范围的,用for循环非常明确; 如果是不明确要做多少次,用while循环较...
有人愿意用While(true)因为他更清晰的看出来这里是个无限循环。有人愿意用For(;;),因为有些IDE对于While(true)会给出警告。至于你,爱用啥用啥! while(true)和for(;;)都是做无限循环的代码,他俩有啥区别呢? 我承认这个问题有点无聊,并且工作中也不会有人刻意的去考虑他们之间的性能差异,也不太会有人在做...
基础篇---死循环for(;;)与while(true)的区别 技术标签:Java二进制码IDEAwhile与for性能 事实证明某些编译器编译的代码两个死循环没有任何差别。 Look: IDEA中测试代码: 编译生成可执行的二进制字节码: 从实例中可以看出两种方式执行方式完全一样,没有优劣之分。。。 ps:但是代码执行方式依赖于编译器,有的编译...
结论:从编译后的字节码文件看,for(;;) 和 while(true) 在底层用的相同的实现,两种写法没有区别。 1、for(;;) @Test public void test(){ for(;;){ System.out.println("for"+"+++"); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...
*/ int i; while (true); /* 012C52BE mov eax, 1 012C52C3 test eax, eax 012C52C5 je main + 29h (012C52C9h) 012C52C7 jmp main + 1Eh (012C52BEh) */ } /* 总结: 1. for(;;)指令少,不占用寄存器, 2. while(true)要占用寄存器,指令多一些 ...
区别一:使用场景不同:知道执行次数的时候一般用,条件循环时一般用while。区别二:两种循环在构造死循环时的区别:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,...