JAVA中的Final、Finally、Finalize的区别
JAVA中的Final、Finally、Finalize的区别
[TOC]
1、final
- final修饰符(关键字)被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。
- 将变量声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取而不可修改。
- 将方法声明为final,被final声明的方法也同样只能使用,即不能在子类中被重写。
1 |
|
2、finally
finally是在异常处理时提供finally块来执行任何清除操作。通常放在try…catch的后面构造总是执行的代码块,不管有没有异常被抛出、捕获,finally块都会被执行;这就意味着程序无论正常执行还是发生异常,这里的代码只要JVM
不关闭都能执行,阔以将释放外部资源的代码写在finally的语句块中。
3、finalize
- finalize是Object类中定义的方法。因此所有的类都继承了它。子类重写finalize ( ) 方法以整理系统资源或者被执行其他清理工作。
- java语言允许使用finalize ( ) 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
- 这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
- finalize ( ) 方法是在垃圾收集器销毁对象之前对这个对象调用的。
ps:基于finally中的涉及到的异常,我们谈谈java中error与exception的区别!
Error 与 Exception 的区别
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!