Leo de Effective Java que en ausencia de sincronización, la siguiente secuencia A a continuación se puede convertir en la secuencia B por la máquina virtual y se llama hoisting
. También leí en alguna parte que si las variables no se declaran como instrucciones volátiles que involucran las variables se pueden reordenar. ¿Están izando y reordenando lo mismo?¿Están izando y reordenando lo mismo?
while (!done) sequence A
i++;
if (!done)
while (true) sequence B
i++;
posible duplicado de [¿por qué el punto de acceso optimiza lo siguiente mediante el uso de elevación?] (Http://stackoverflow.com/questions/9338180/why-hotspot-will-optimize-the-following-using-hoisting) –