final,finally,finalize方法

阅读更多
以下大部分总结自《java程序员面试宝典》
final成员:
说明该变量一旦初始化就不可改变,对基本类型来说是不能改变值,对对象来说是不能改变引用(但内容是可以变的,因为内容改变是对象变量的引用没变)。其初始化可以在定义处或在构造函数中,两者只能选其一。

final方法:
1、说明这个方法不允许任何从此类继承的类来覆写这个方法,但仍然可以继承。
2、允许编译器将所有对此方法的调用转化为inline调用,它会在调用final方法时直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点、压栈等,这样可能会使程序效率有所提高。当然当方法主体非常庞大时,或在多处调用此方法时,调用主体代码会迅速膨胀,可能反而会影响效率,所以要慎用final方法。

final类:
表面该类无法被继承。final类中的方法都是final的,可以显示加上final关键字,也可以不加。final类中的成员变量可以为final的也可以不是。

finally关键字是对java异常处理模型的最佳补充。finally结构使代码总会执行,不管有无异常发生。使用finally可以维护对象的内部状态,并可清理非内存资源。

finalize是方法名:finalize()方法是在垃圾收集器在删除对象之前对这个对象调用的。它在Object类中定义,因此所有类都继承了它。子类覆写该方法以整理系统资源或者执行其他清理工作。JVM保证调用这个函数之前,这个对象是不可达的(没有引用指向它),但JVM不保证这个函数一定会被调用,JVM还保证finalize()函数最多运行一次。

你可能感兴趣的:(JVM,面试,工作)