final:
final是一个修饰符,可以修饰变量、方法和类。如果final修饰变量,意味着被修饰的变量一旦被初始化之后就不能再被改变。
finally:
finally是一个关键字,常与 try catch 一起联用于异常处理,finally方法块一定会被执行,无论try方法块是否有异常发生,所以常用于流的关闭。
在try - catch - finally中catch中return,finally还会执行吗?
执行顺序 catch ---finally ----catch中的return
所以,finally是无论如何都会执行的。
finalize:
finalize 方法是在对象被回收之前调用的方法,是给对象最后一次复活的机会,什么时候需要使用finalize方法没有保证,需要根据具体的业务逻辑进行选择。
使用finalize方法没有保证:这是因为该方法的执行优先级很低,需要进行等待让主线程等待这个方法执行完后再去进行垃圾回收,不然垃圾回收的执行优先级高于finalize方法,没等到finalize方法执行就一级把对象当成垃圾回收了。但是即使救活了这个对象,再次进行垃圾回收的话就再也救不活了。