关键字final
1、声明变量,阻止对其内容进行修改:
Java代码
final int FILE_NEW = 1;
final int FILE_NEW = 1;
2、在继承中使用:
a、阻止重写
Java代码
class A {
final void meth() {
System.out.println("The final method.");
}
}
class B extends A {
void meth() { //错误的,无法继承。
System.out.println("Illegal.");
}
}
class A {
final void meth() {
System.out.println("The final method.");
}
}
class B extends A {
void meth() { //错误的,无法继承。
System.out.println("Illegal.");
}
}
声明为final的方法有时候可以提高程序性能。
b、使用final阻止继承
Java代码
final class A {
//...
}
class B extends A { //错误的
//...
}
final class A {
//...
}
class B extends A { //错误的
//...
}
声明一个类为final则隐式的声明了它的所有方法也为final,声明一个类既是abstract又是final是不合法的。
关键字finally
当抛出异常的时候,方法内的程序会采取一种突变的非线性的路线,这样就改变了方法内的正常程序流。根据方法的编码形式,异常可能使方法过早的返回。finally就是用来解决这种意外事件的。 finally创建一个代码块,该代码将在执行完成try/catch块之后执行try/catch块后面的代码之前被执行。无论是否抛出异常,finally块都将执行。如果抛出异常,即使没有catch语句匹配这个异常,finally块也将执行。
方法finalize()
在撤销一个对象的时候,有时候需要完成一些操作。比如:一个对象正持有某些非Java资源,要确保在对象被销毁之前释放这些资源。为处理这种情况Java提供了一种称为结束(finalization)的机制。使用结束,可以定义特殊的动作,这种动作在一个对象要被垃圾收集器收回时执行。要给一个类添加结束器,只需定义finalize()方法。
Java代码
protected void finalize()
{
// finalization code here
}
protected void finalize()
{
// finalization code here
}