美文网首页Java学习
Java中final、finally和finalize的区别

Java中final、finally和finalize的区别

作者: FFJ | 来源:发表于2018-05-19 16:27 被阅读0次

    1、final
    final是修饰符。可以用来修饰类、方法、变量。

    final修饰的类不能作为父类而被继承。

    final修饰的方法不能被重写,但是可以被重载。

    final修饰的基本类型的变量,可以看作是一个常量,可以在声明的同时赋值,也可以在第一次使用之前赋值(事实上,任何变量在使用之前都必须先赋值),但是,一旦赋值完成,该变量的值将不可改变(不可重新赋值)。
    值得注意的是,final修饰的成员变量不再分配默认值,必须手动赋值。
    如果final修饰的是引用数据类型,那么代表的是引用的地址不可改变,但是地址内的对象属性值可以修改(声明和定义同样可以分开)。

    2、finally
    finally用于异常处理中,一般和try、catch一起使用(也可以没有catch)。表示无论异常是否发生都会执行。

    try {
    
    } catch(Exception e) {
    
    } finally {
    
    }
    

    使用finally,可以保证如果在try块中有异常抛出,finally中可以执行一些必须完成的代码逻辑,比如资源回收等。

    3、finalize
    finalize()是Object中定义的方法,子类可以重写该方法。它用来释放一些其他做法开辟的内存空间(如使用native method开辟的空间),以及做一些清理工作(如某些资源的释放)。GC在回收对象之前会调用该方法。

    相关文章

      网友评论

        本文标题:Java中final、finally和finalize的区别

        本文链接:https://www.haomeiwen.com/subject/lvfadftx.html