final原理:

1.设置final变量的原理:

final变量的赋值使用了putfiled指令,JVM会在该指令后加入写屏障,保证其他线程读到它的值时不会出现未初始化的情况。