声明为final的变量被标识为不可改变的,也就是说不能再对此变量进行赋值。但是变量引用的对象,如果提供了写的接口,则对象的属性依然是可以改变的。
String类型的对象,由于未提供写的接口,所以是不可改变的。
final变量
声明为final的成员变量(非静态变量),必须在构造对象的过程中完成初始化。
1)定义处。也就是定义变量时直接赋值。
2)初始化块
3)构造函数
声明为final的静态变量,只有两种初始化的方式:
1)定义处。
2)静态初始化块中
声明为final的局部变量,必须且只能在使用前初始化一次,不使用可以不必初始化。
final类
如果一个类被声明为final类,则它不能有子类。
final函数
如果一个函数被声明为final,意味着它不再能被子类覆写。
final 参数
和final变量类似,只能引用,不能赋值。
const
java未使用关键字const,但是这个关键字是保留的。