final 表面意思就是不可更改的,恒量的意思
final的作用:
1) 修饰变量,被final修饰的变量,必须要赋初始值,被赋值后不得重新赋值
2)修饰方法,被final修饰的方法,不能被重写,但是可以重载...觉得自己很啰嗦
3)修饰类,被final修饰的类, 不能被继承
修饰变量
虽然说必须要赋初始值 但是具体的赋值方式还是可以灵活的 直接赋值,构造器赋值,非静态块赋值,静态块赋值(是不是静态块看这个变量是不是静态的就好了)
public class Final {
final static String a="直接赋值";
public Final(){
a="构造器赋值";
}
static {
a="静态块赋值";
}
{
a="非静态块赋值";
}
}
当final修饰的是对象的时候,该变量不能再指向别的对象,但是可以改变对象的属性
user变量在指向一个新的User时报错
拓展:
1)将类、方法、变量声明为final能够提高性能,这样JVM就有机会进行估计,然后优化。
2)接口中的变量都是public static final 的。可以去看看哦