美文网首页
final , finally , finalize 区别

final , finally , finalize 区别

作者: 郑印 | 来源:发表于2018-11-11 21:30 被阅读10次

final , finally ,finalize 从功能上来讲它们没有相关性,更多的是看起来相似。

final

  1. 主要表明程序的语义,不指望能对程序性能本身有多大的提升
  2. final 只是表明表量本身不能被重新复制,但不代表对象本身的可变性,比如 final List list = new List(); 这个list本身依旧可以进行 add 添加新值

finally

  1. finally 在 System.exit(1); 下是不会被执行的,这是个特例
  2. 资源回收使用 jdk7 新增的 try/catch/resource 来进行回收比finally更好

finalize

  1. finalize 不会保证会被正确执行,不能指望使用它来做资源回收,这点在effective java 中也有提及
  2. jdk9 已经将 finalize 标记为弃用
  3. 如果一定要使用 finalize 可以使用 java.lang.ref.Cleaner 来替代

本文是学习极客时间Java核心结束36讲笔记,如果你对此课程感兴趣可以在下载极客时间App搜索该课程,也可以点击链接查看

相关文章

网友评论

      本文标题:final , finally , finalize 区别

      本文链接:https://www.haomeiwen.com/subject/enyffqtx.html