一、final变量
final修饰的变量叫常量。
①final修饰基本数据类型的变量时,值不能被改变;
②final修饰引用变量时,该引用变量不能再指向其他对象,但对象的内容可以改变;(因为对象值可以改变,所以通常final与static一起使用,以实现真正的不可变)
③final修饰的变量必须被初始化;
初始化有以下几种方式:
1.可以在定义时初始化;
2.非static变量可以在初始化块中初始化,但不能在静态初始化块中;
3.static修饰的可以在静态初始化块中,但不能在初始化块内;
4.可以在构造器内初始化,但静态final不能;
二、final方法
①final修饰的方法不可被重写;
②final修饰的方法执行效率要高于非final方法;
三、final类
①final修饰的类不能被继承;
②final修饰的类的成员变量不能修改值;
③final修饰的类,其方法都被隐式设置为final形式,但成员变量可以被定义为非final形式;
四、final、finally、finalize
三者并没有什么联系,只是长得像而已。
final用来修饰变量、方法,表示它们拥有不可变的一些特性。
finally是异常处理的一部分,用在try/catch语句中,其包含的语句块内容最终一定会执行。
finalize是Object类的一个方法,覆盖此方法来实现对资源的回收。