① final 可以用来修饰类、方法、变量,

  ----final修饰的class代表不可以继承扩展

  ----final的变量不可以修改

  ----final的方法不可以override

  ----final不是immutable,对于list,只能约束list这个引用不能被赋值,但list的对象行为不被final影响,添加元素等操作是完全正常的。

② finally是Java保证重点代码一定要被执行的一种机制,用try-finally 或 try-catch-finally进行类似关闭JDBC连接、保证unlock锁等动作。

  ----try-with-resources or try-finally是非常好的回收资源的方法。如果确实需要额外处理,可以考虑Java 提供的Cleaner机制或者其他代替方法。

③ finalize 是基础类java.lang.Object的一个方法,它设计的目的是保证对象在被垃圾收集前完成特定资源的回收。

  ----finalize机制现在已经不推荐使用(jdk9 deprecated)。不推荐使用的原因是无法保证finalize什么时候执行,执行的是否符合预期,使用不当会影响性能,导致程序死锁,挂起。

05-11 22:55