final、finally、finalize区别
一、final
(1) 声明类(最终类),类不可以被继承
(2) 声明方法(最终方法),子类不可以重写,当前类不可以重载
(3) 声明基本数据类型,值不可以改变;引用数据类型,可以改变值,但是不可以开辟新的内存空间地址。
二、finally
正常情况下,不论是否抛出或捕获异常finally块都会执行
三、finalize
finalize()方法由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此,所有类都继承了它。finalize()方法是在垃圾收集器删除对象之前被自动调用的。
四、练习题
1.(多选) final、finallymfinalize的区别中,下述说法正确的有 (A B C D)
A: final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
B: finally号异常处理洁句结枸的一部分,表示总导执行。
C: finalize号Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件。
D:引用变量被final修饰之后,不能再指向其他对象,它指向的对象的内容也是不可变的