final关键字
一、基本用法 修饰类 表示这个类不能被继承,并且final类的所以成员方法都可以都会被隐式制定为final方法。因为final修饰类以后,导致类不能再被继承,出于安全考虑,尽量不要将类设计为final类。 修饰方法 锁定方法,防止任何继承类修改它的含义 效率。早期java版本,final方法转为内嵌调用,但方法过于庞大,看不到任何内嵌带来的性能提升。 修饰方法以后,父类的final方法不能被子类所覆盖,即此方法不能被重写,但是在一个类中,可以重载多个final修饰的方法。类的private方法被隐式制定为final方法 修饰变量 此种情况出现最多,final修饰常量,只能赋值一次,初始化后不能再发生改变,final修饰引用类型,初始化后不能再指向其他对象,但是该引用指向的对象的内容可以发生改变。 final修饰一个成员变量时,必须显示的初始化,声明时初始化,或者在构造函数中就行初始化赋值。 二、深入理解 1、类的final变量和普通变量有什么区别 类的final变量作用于成员变量时,需要在定义时或者构造器中进行初始化赋值,一旦赋值,就不能再被赋值。而普通变量则不同。 2、被final修饰的引用变量指向的对象内容是否可变 final修饰的引用变量指向的对象不能再发生改变,但是指向的对象内容可以发生改变 3、final参数 代表该参数不可改变