考点:考察求职者对这3个java关键字的理解和区分
出现频率:★★★★
【面试题解析】带有 final修饰符的类是不可派生的。在Java核心APⅠ中,有许多应用final的例子,例如 java.lang.String。为String类指定final,防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。 final类似于C/C++中的常量,可作类、成员方法、数据成员以及局部变量的修饰符。在修饰类及成员方法时,能够控制类及成员方法是否被继承或重写等功能。 ●修饰类:类不能被继承。 ●修饰成员方法:方法不能被重写。 ●修饰数据成员:定义数据成员为常量,可在定义时或者在构造方法中初始化,当 与 static合用时,只能在定义时初始化。 ●修饰局部变量:定义常量一经初始化不能再修改 面试题11中的3个拼写非常接近的关键字在使用中有很大的不同,一般的求职者只需要区分这3个关键字的用法即可。 参考答案: final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是 Object类的一个方法,在垃圾收集器执行的时候,会调用被回收对象的此方法,可以覆盖此方法,提供垃圾收集时的其他资源回收,例如关闭文件等。