1.final用于声明属性、方法和类,分别表示属性不可改变(常量),方法不可覆盖,类不可继承。
2.finally是异常处理语句结构的一部分,表示总是执行。
3. finalize是java.lang.Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。
用法:如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承。方法声明为final,它们在使用中将不被改变,只能使用,不能重载。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
而finally是异常处理的一部分,用于释放资源。有finally,代码肯定会执行它,除非在finally之前JVM退出,才不会执行。finalize是Object类的一个方法,用于垃圾回收。
代码举例:
public class Example {
// final的例子
final int x = 10; // 常量,不可改变
final void show() { // 方法不可覆盖
System.out.println("This is a final method.");
}
final class InnerClass { // 类不可继承
void show() {
System.out.println("This is a final inner class.");
}
}
// finalize的例子(注意:finalize方法已经在Java 9中被标记为已过时,因此这个例子在实际应用中已经很少使用)
@Override
protected void finalize() throws Throwable { // Object类的finalize方法
System.out.println("finalize method called.");
super.finalize(); // 调用父类的finalize方法
}
}
// finally的例子
public static void main(String[] args) {
try {
//代码块
} catch (Exception e) {
System.out.println("执行遇到异常");
} finally {
System.out.println("无论代码是否抛出异常,总会走到这个方法里");
}
}