说明:对于 final 域,编译器和处理器要遵守两个重排序规则:
在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个操作之间不能重排序
初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序
举个例子:
public class FinalExample {
int i;// 普通变量
final int j;// final 变量
static FinalExample obj;
pub <weixin_38656989> 上传 | 大小:267kb