Effective Java同期化がない場合、以下のシーケンスAは仮想マシンによってシーケンスBに変換でき、これはhoisting
と呼ばれます。私はまた、変数を含む揮発性命令を並べ替えることができるため、変数が宣言されていない場合はどこかを読んでいます。同じものを持ち上げて並べ替えていますか?同じものを吊り上げて並べ替えていますか?
while (!done) sequence A
i++;
if (!done)
while (true) sequence B
i++;
[ホットスポットが次のホイストを最適化する理由は?](http://stackoverflow.com/questions/9338180/why-hotspot-will-optimize-the-following-using-hoisting) –