最近在阅读JUC源码的时候,由于多线程并发时情况比较复杂,所以源码中经常出现一些无限循环用于等待确保或是某些目的的完成,通常我一般无限循环都是用while(true),但是我发现在concurrent包中经常用for(;;)来实现。这让我产生了困惑,难道for(;;)会比while(true)性能更好一些吗?于是我决定自己分别编译比较一下。 我编写了如下的程序: public class Test2 { public void whileTest() { int i = 0; while (true) { i++; } } public