final可以修饰成员变量、局部变量、类和方法
final修饰的数据都是常量,数据类型分为基本数据类型和引用数据类型。
final修饰基本类型的数据时,是不可修改的,只能赋值一次。如下图,修改会报错。
final会固定指向堆中的地址
修饰引用类型的数据是可以修改的,因为引用类型是指向堆中的地址的,堆中的变量地址可以改变。如下图:
final固定的是一个地址,修饰的全局变量必须赋值。
final修饰的方法继承后不能重写。
final修饰的类不能被继承。
final可以防止命令重排序,保证线程安全。