final finally finalize()区别
final 表示最终的、不可改变的。用于修饰类、方法和变量。
如果修饰类则表示该类不可被继承,修饰方法的话表示该方法不可被重写,修饰变量则表示该变量的值不可被改变,否则会报错。
finally 异常处理的一部分,它只能用在try/catch语句中,表示希望finally语句块中的代码最后一定被执行(但是不一定会被执行)
try {
super.finalize();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//这里的代码表示希望finally语句块中的代码最后一定被执行,但是不一定会被执行
}
finalize() 是在java.lang.Object里定义的,Object的finalize方法什么都不做,对象被回收时finalize()方法会被调用。
特殊情况下,可重写finalize方法,当对象被回收的时候释放一些资源。
但注意,要调用super.finalize()。
{@code @Override
protected void finalize() throws Throwable {
try {
... // cleanup subclass state
} finally {
super.finalize();
}
}