final、finally与finalize的区别
2021-08-01 本文已影响0人
瓢鳍小虾虎
final
final是一个修饰符,可以修饰非抽象对象,非抽象方法,变量。
final类不能被继承,即无子类,final类的方法默认都是final方法。
final方法可以被继承,不能被覆盖。在设计的时候如果不希望方法被覆盖,可以考虑声明为final方法。并且final方法会被编译器转为内嵌处理,大大提高执行效率。
final变量为常量,一旦被初始化后不能再改变。不管是静态变量,成员变量还是局部变量都一样。
final有支持“空白”,即final只声明,不初始化。这种情况必须先赋值才能使用,也不能重复赋值,否则编译器会报错。这个特性还可以用于对象成员变量,保证只在初始化的时候动态赋值并且成为一个常量。
finally
finally是一个关键字,用在try-catch-finally代码块中。
finalize()
finalize()是Object的方法,与jvm垃圾回收有关。主要用在垃圾回收执行之前,用户可以做一些自定义处理。