final、finally、finalize三者的区别?
- final一般可以修饰属性,方法,类。如果修饰属性,则这个属性则是一个常量不可变的;如果修饰一个方法则这个方法不能被重写;如果修饰一个类则这个类不能被继承。并且final是关键字!
- finally是Java中保证的重要语句一定会被执行到,列如在try-catch-finally或者try-finally中来进行类似关闭 JDBC 连接、保证 unlock 锁等动作。并且finally也是一个关键字。
- finalize是Object中的一个方法,它的设计目的是保证对象在被GC垃圾收集前完成特定资源的回收。finalize 机制现在已经不推荐使用,并且在 JDK 9 开始被标记为 deprecated。
如果一定要对finalize重写应该怎么做呢?
如果一定要重写finalize在代码的最末尾加上super.finalize()这样要保证我们重写的finalize也一样会被GC掉用到。