final、finally与finalize的区别

final

final是一个修饰符,可以修饰非抽象对象,非抽象方法,变量。

final类不能被继承,即无子类,final类的方法默认都是final方法。

final方法可以被继承,不能被覆盖。在设计的时候如果不希望方法被覆盖,可以考虑声明为final方法。并且final方法会被编译器转为内嵌处理,大大提高执行效率。

final变量为常量,一旦被初始化后不能再改变。不管是静态变量,成员变量还是局部变量都一样。

final有支持“空白”,即final只声明,不初始化。这种情况必须先赋值才能使用,也不能重复赋值,否则编译器会报错。这个特性还可以用于对象成员变量,保证只在初始化的时候动态赋值并且成为一个常量。

finally

finally是一个关键字,用在try-catch-finally代码块中。

finalize()

finalize()是Object的方法,与jvm垃圾回收有关。主要用在垃圾回收执行之前,用户可以做一些自定义处理。

参考文章:
谈谈final、finally、finalize的区别

你可能感兴趣的:(final、finally与finalize的区别)