修饰变量。以下方法只能选一个
- 在变量的等号右边直接赋值。private final int a =6;
- 在构造函数中赋值。
- 在类的初始代码块中赋值(不常用 )private static final int a =6;static{a=7}
class xx{
void testFinal(){
final int b = 5;
intc c;
}
}
修饰方法,不允许修饰构造方法,引申:static方法不能被重写
修饰类不可被继承
String就是final修饰的
注意点
修饰对象,引用不可变,属性可以变
对象不可变
- 对象创建后,状态不能修改
- 所有属性都是final修饰
- 对象创建过程中没有溢出
不变性和final的关系
- 不变性并不意味着,简单的用 final修饰就是不可变
- 对于基本数据类型,确实被final修饰后就具有不变性