区别
一、性质不同
1、final为关键字
2、finalize()为方法
3、finally为区块标志,用于try-catch-finally语句
二、作用
(1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍);
(2)finalize()方法在Object中进行了定义,用于在对象“消失”时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数;用户自定义时,用于释放对象占用的资源(比如进行I/0操作);
(3)finally{}用于标识代码块,与try{}进行配合,不论try中的代码执行完或没有执行完(这里指有异常),该代码块之中的程序必定会进行
三、简单区别
1、final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。
2、finally是异常处理语句结构的一部分,表示总是执行。
3、finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。