1、final
final是修饰符。可以用来修饰类、方法、变量。
final修饰的类不能作为父类而被继承。
final修饰的方法不能被重写,但是可以被重载。
final修饰的基本类型的变量,可以看作是一个常量,可以在声明的同时赋值,也可以在第一次使用之前赋值(事实上,任何变量在使用之前都必须先赋值),但是,一旦赋值完成,该变量的值将不可改变(不可重新赋值)。
值得注意的是,final修饰的成员变量不再分配默认值,必须手动赋值。
如果final修饰的是引用数据类型,那么代表的是引用的地址不可改变,但是地址内的对象属性值可以修改(声明和定义同样可以分开)。
2、finally
finally用于异常处理中,一般和try、catch一起使用(也可以没有catch)。表示无论异常是否发生都会执行。
try {
} catch(Exception e) {
} finally {
}
使用finally,可以保证如果在try块中有异常抛出,finally中可以执行一些必须完成的代码逻辑,比如资源回收等。
3、finalize
finalize()是Object中定义的方法,子类可以重写该方法。它用来释放一些其他做法开辟的内存空间(如使用native method开辟的空间),以及做一些清理工作(如某些资源的释放)。GC在回收对象之前会调用该方法。