final关键字
含义
基础含义是不可变。
- 采用 final 修饰的类不能继承。
- 采用 final 修饰的方法不能被覆盖
- 采用 final 修饰的变量不能被修改
- final 修饰的变量必须显示初始化
- 如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个引用不能再次赋值,但被指向的对象是可以修改的
- 构造方法不能被 final 修饰
采用final修饰引用
final 修饰的引用,该引用只能指向一个对象,并且只能永远指向这一个对象,无法再指向其他对象。并且在该方法执行过程当中,该引用指向这对象之后,这对象不会被垃圾回收器回收。直到当前方法结束,才会释放空间。
采用final修饰实例变量
public class Person{
final int age; //报错
final int age = 10; //可以
final int weight;
public Person(){
weight = 80;
} //可以
/*
final int weight;
public Person(int w){
weight = w;
} 可以
*/
}
常量
final修饰的变量一般用static联合修饰,简称常量。
常量金额静态变量,都是存储在方法区,在类加载是初始化。
final static String COUNTRY = "中国";