java死迴圈while(true)vsfor(;;)
今天在看AtomicInteger的樂觀鎖實現(CAS);讀原始碼發現它的死迴圈式是這麼寫的
/**
* Atomically decrements by one the current value.
*
* @return the previous value
*/
public final int getAndDecrement() {
for (;;) {
int current = get();
int next = current - 1;
if (compareAndSet(current, next))
return current;
}
}
採用的是for(;;) 而我常用的習慣是用while(true),這兩者有什麼區別呢。是不是for(;;)要比while(true)快呢?
做了如下測試
/**
* MainTest
*
* @author lilin
* @date 16/12/1
*/
public class MainTest {
public static void main(String[] args) {
forTest();
whileTest();
}
public static void forTest(){
for(;;){
System.out.println("for");
}
}
public static void whileTest(){
while (true){
System.out.println("while");
}
}
}
**編譯 javac -p src/main/java/classes src/main/java/MainTest.java
編譯後的檔案MainTest.class 程式碼如下**
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
public class MainTest {
public MainTest() {
}
public static void main(String[] var0) {
forTest();
whileTest();
}
public static void forTest() {
while(true) {
System.out.println("for");
}
}
public static void whileTest() {
while(true) {
System.out.println("while");
}
}
}
發現最後都變成了while(true) 得出的結論他們最終的效果應該是一樣的 。
相關文章
- Java 迴圈 - for, while 及 do…whileJavaWhile
- while迴圈以及do while迴圈While
- Java迴圈結構-for,while及do…whileJavaWhile
- Java while和do while迴圈詳解JavaWhile
- for 迴圈與 while 迴圈While
- while迴圈 case迴圈While
- Java 迴圈結構 - for, while 及 do...whileJavaWhile
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- while迴圈While
- PHP For & While 迴圈PHPWhile
- python while迴圈PythonWhile
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- 04流程控制 for迴圈,while迴圈While
- while + else 使用,while死迴圈與while的巢狀,for迴圈基本使用,range關鍵字,for的迴圈補充(break、continue、else) ,for迴圈的巢狀,基本資料型別及內建方法While巢狀資料型別
- while迴圈補充While
- python-while迴圈PythonWhile
- 無限for迴圈(死迴圈)
- 七 while迴圈語句While
- sass的迴圈for,while,eachWhile
- JavaScript中的while迴圈JavaScriptWhile
- Java之for(;;)和while(true)的區別JavaWhile
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- 分別使用while迴圈、do…while迴圈和for迴圈輸出1~100之間的所有偶數While
- python04: while迴圈語句 break continue for in 迴圈PythonWhile
- 15-python之while迴圈PythonWhile
- c#入門-while迴圈C#While
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- python_while truePythonWhile
- python 基礎習題6--for迴圈和while迴圈PythonWhile
- C#練習,應用for,while,do-while迴圈C#While
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- Python學習-while迴圈練習PythonWhile
- Python基礎-While迴圈語句PythonWhile
- web前端開發教程-while迴圈Web前端While
- python基礎 while迴圈練習PythonWhile
- While True用法小例子While
- while read line 與for迴圈的區別While
- Linux while 迴圈中使用ssh問題LinuxWhile
- 資料型別——集合與while迴圈資料型別While