final、finally、finalize的区别
其实是看起来相似,但用途完全不同的3个东西。
final可以用来修饰类,方法,变量,
修饰类代表不可以继承扩展,修饰方法代表不可以重写,修饰变量代表不可修改
finally是Java保证重点代码一定要被执行的一种方式,常用的用法式try-finally,try-catch-finally,常用于关闭JDBC连接,释放锁,关闭流等操作
finalize是基础类java.lang.Object的一个方法,在对象被垃圾收集前调用,他的设计目的是保证对象在被垃圾回收前完成特定资源的回收,现在已经不推荐使用,JDK9开始被标记为deprecated
基础类库的很多类,都被声明成final class,这样可以避免API使用者更改基础功能,这是保证平台安全的必要手段
用final修饰变量,也可以避免意外赋值导致程序错误
final修饰list时,只限制这个引用不能被赋值,但是list可以添加删除元素
如果try块里执行了System.exit(1),finally里的代码不会执行