final
final 类不能被继承,所有成员方法都会被隐式地指定为 final 方法,final 方法不能被重写。
final 变量表示常量,只能被赋值一次,赋值后值不再改变。
- 修饰基本数据类型时,该值在初始化后不能改变。
- 修饰引用类型时,引用指向的对象在初始化后不能改变,但该对象的内容可以发生变化。
内存语义
- Store Store 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。
- Load Load 初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。