材料来自 《Java高级程序员面试笔试宝典》第6.1.2节 1. 正常情况 CPU在运行期间会对指令进行优化,没有依赖关系的指令,他们的顺序可以被重排。在单线程执行下,发生重排是没有问题的,CPU保证顺序不一定一致,但结果一定一致。 如以下代码: int i = 0; //(1) i++; //(2) boolean f = false; //(3) f = true; //(4)