JDK源碼中媚狰,“死循環(huán)”有兩種寫(xiě)法:for(;;)和while(true)淫僻,
源碼中多數(shù)是for( ; ; )這種形式:
編譯前 編譯后
while (1)诱篷; mov eax,1
test eax,eax
je foo+23h
jmp foo+18h
編譯前 編譯后
for (;雳灵;)棕所; jmp foo+23h
一目了然,for (悯辙;橙凳;)指令少,不占用寄存器笑撞,而且沒(méi)有判斷跳轉(zhuǎn),比while (1)好钓觉。
也就是說(shuō)兩者在在宏觀上完全一樣的邏輯茴肥,但是底層完全不一樣,for相對(duì)于來(lái)說(shuō)更加簡(jiǎn)潔明了荡灾。