悟空老师你好,我在其他书上看到final,产生一个疑问。volatile禁止重排序,在volatile写操作前的所有操作都是可见的,final是否有同样效果。
class FinalOrder{
int i;
final int f;
public FinalOrder(){
i = 1;
f = 1;
}
}
书上说i =1可能会在构造方法外执行,但f是有内存屏障。这里final为何不能和volatile一样.