final是一个关键字,表示最终的,不可变的
1、final修饰的类无法被继承。
2、final修饰的方法无法被覆盖。
3、final修饰的变量一旦赋值后,不可重新赋值。
4、实例变量有默认值 + final修饰的变量一旦赋值不能重新赋值
//第一种解决方案
final int a = 10;
//第二种解决方案
final int b;
public StringTest(){
b = 10;
}
//以上两种解决方案本质上都是一样的,都是在构造方法执行的过程中给实例变量赋值
注:Java语言最终规定实例变量使用final修饰之后,必须手动赋值,不能采用系统默认值
5、final修饰的引用,一旦指向某个对象之后,不能再指向其他对象,那么被该指定的对象无法被垃圾回收器回收。
注:final修饰的引用虽然指向某个对象之后不能指向其他对象,但是所指向的对象内部的内存是可以被修改的。
6、final修饰的实例变量是不可变的,这种变量一般和static联合使用,被称为“常量”。
常量的定义语法格式:
public static final 类型 常量名 = 值;
注:Jav规范中要求所以常量的名字全部大写,每个单词之间使用下划线连接