1.final关键字:final可以用来修饰类、方法和变量。它表示被修饰的类不能被继承,被修饰的方法不能被重写,被修饰的变量只能赋值一次(即常量)。例如:
public final class MyClass {
public final int MY_CONSTANT = 42;
public final void myMethod() {
// ...
}
}
在上面的例子中,MyClass类被声明为final,因此它不能被其他类继承。MY_CONSTANT变量也被声明为final,因此它只能赋值一次,并且myMethod()方法也被声明为final,因此它不能在子类中重写
2.finally关键字:finally是一个代码块,在try-catch语句中使用。无论是否发生异常,在try或catch块执行完毕后都会执行finally块中的代码。例如:
try {
// 可能会抛出异常的代码
} catch (Exception e) {
// 处理异常
} finally {
// 在任何情况下都会执行的代码
}
在上面的例子中,无论try块中是否发生了异常,finally块中的代码都会执行。
3.finalize方法:finalize是Object类中定义的一个方法,在垃圾回收器将对象从内存中清除之前调用。这个方法可以用来释放对象占用的资源或者执行一些清理操作。例如:
public class MyClass {
private File file;
public MyClass(String filename) {
this.file = new File(filename);
}
@Override
protected void finalize() throws Throwable {
try {
this.file.delete();
} finally {
super.finalize();
}
}
}
在上面的例子中,MyClass类有一个私有成员变量file,它在构造函数中初始化为指定文件名对应的File对象。当这个对象不再使用时(即没有任何引用指向它),垃圾回收器将会调用其finalize()方法来删除对应文件并释放资源。