JAVA 面试 32 问第一,谈谈 final, finally, finalize 的区别
(最常被问到) final 修饰符(关键字) 假如一种类被申明为 final,意味着它不能再派生出新的子类,不能作为父类被继承
因此一种类不能既被申明为 abstract,又被申明为 final
将变量或措施申明为 final,可以保证它们在使用中不被变化
其初始化可以在两个地方:一是其定义处,也就是说在 final 变量定义时直接给其赋值;二是在构造函数中
这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同步既在定义时给了值,又在构造函数中给此外的值,而在后来的引用中只能读取,不可修改
被申明为 final 的措施也同样只能使用,不能重写(override)
finally 在异常处理时提供 finally 块来执行任何清除操作
假如抛出一种异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally块(假如有的话)
finalize 措施名
Java 技术容许使用 finalize()措施在垃圾搜集器将对象从内存中清除出去之前做必要的清理工作
这个措施是由垃圾搜集器在确定这个对象没有被引用时对这个对象调用的
它是在 Object 类中定义的,因此所有的类都继承了它
子类覆盖 finalize()措施以整理系统资源或者执行其他清理工作
finalize()措施是在垃圾搜集器删除对象之前对这个对象调用的
第二,Anonymous Inner Class(匿名内部类) 与否可以 extends(继承)其他类,与否可以 implements(实现)interface(接口)
匿名的内部类是没有名字的内部类
不能 extends(继承) 其他类,但一种内部类可以作为一种接口,由另一种内部类实现
第三,Static Nested Class 和