final、finally、finalize 的区别?

final、finally、finalize 的区别?
- final 用于修饰变量、方法和类:被 final 修饰的类不可被继承,被 final 修饰的方法不可被重写,被 final 修饰的变量是不可变的。
- finally 是异常处理的一部分,它必须与 try-catch 块一起使用,并包含一个代码块,表示无论是否发生异常,该代码块都会被执行。通常在需要释放资源的情况下使用 finally 块。在 finally 块中可以执行清理和关闭操作。注意,使用 System.exit(0) 可以阻止 finally 块的执行。
- finalize 是在 java.lang.Object 类中定义的方法,因此每个对象都有该方法。finalize 方法在垃圾回收器启动并准备回收对象时被调用。
对象的 finalize 方法只会被调用一次。调用 finalize 方法并不一定会立即回收对象,因此在调用 finalize 方法后,对象可能再次变为不需要回收的状态。而在真正要回收对象时,由于之前已经调用过一次 finalize 方法,所以不会再次调用 finalize。因此,不推荐过度依赖 finalize 方法的使用。