final、finally、finalize 有什么区别?
1、final
final是java中的一个关键字。可以用来修饰变量、方法和类。
(1)final修饰变量:变量被一次赋值后,不可以修改。
(2)final修饰方法:方法不可以被重写。
(3)final修饰类:类不可以被继承。也默认final类中的方法均为final方法。
(注意:JDK中哪些类是不能被继承的? 答:final修饰的类。一般比较基本的类型为了防止被无意破坏直接定义为final类,比如String、StringBuffer都是不可以被继承的。)
2、finally
finally是java异常处理的一部分。只能用在try——catch语句中,并附带一个语句块,表示这段代码一定会被执行。常被用于释放资源,比如说数据库连接资源或者IO资源。
3、finalize
finalize是Object类的一个方法,在垃圾回收器执行的时候会调用对象的finalize方法,实现对资源的回收。需要注意的是,一旦垃圾回收器准备好释放对象占用的空间,将首先调用其finalize方法,并在下一次垃圾回收动作发生时,真正回收对象占用的内存。