final方法

将方法声明为final那有两个原因:

第一就是说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。

第二就是允许编译器将所有对此方法的调用转化为inline(行内)调用的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义。

final类

当你将final用于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。

对于final类中的成员,你可以定义其为final,也可以不是final。

而对于方法,由于所属类为final的关系,自然也就成了final型的。你也可以明确的给final类中的方法加上一个final,但这显然没有意义。

Java fina 方法和类相关推荐

  1. Java hashCode()方法和equals()方法

    hashCode方法和equals方法之间的关系: equals方法指示其他一个对象和此对象是否相等.在Object类中定义如下: public boolean equals(Object obj) ...

  2. Java compare方法和compareTo方法

    1.compare 对于 public int compare(Object arg0, Object arg1)的理解 //数组排序 String[] str = new String[5]; Ar ...

  3. Java equals()方法和hashCode()方法

    equals()方法 如果满足了以下任何一个条件,就不需要覆盖equals()方法: 1 类的每个实例本质上都是唯一的. 2 不关心类是否提供了"逻辑相等"的测试功能. 3 父类已 ...

  4. java fina用法

    final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. 既然这样,我们想给final赋初始值主要有哪些方法? 1.final在定义变量的时候给变量赋上初始值 2.在构造器初 ...

  5. [转载] Java中的final变量、final方法和final类

    参考链接: Java中的final数组 | Final arrays 1.final变量 final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值.通常,由final定义的变量为常量 ...

  6. 【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!

    来自:冰河技术 写在前面 新一轮的面试已经过去,可能是疫情的原因吧,很多童鞋纷纷留言说今年的面试题难度又提高了,尤其是对并发编程的知识.我细想了下,也许有那么点疫情的原因吧,但无论面试的套路怎么变,只 ...

  7. 并发基础篇(六):线程Thread类的start()方法和run()方法

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  8. Java基础提升篇:equals()方法和“==”运算符

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 好好学java java知识分享/学习资源免费分享 关注 精彩内容 你所需要的 ...

  9. Java提升篇——equals()方法和“==”运算符

    equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) {retur ...

最新文章

  1. mongodb的安装以及客户端
  2. php当前日期的时间戳,php – 获取当前的ISO8601日期/时间戳
  3. 【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
  4. TensorFlow从1到2(四)时尚单品识别和保存、恢复训练数据
  5. python 学习资源收集汇总
  6. add git 的文件 移除_【Git第八节】移除文件
  7. VMware Fusion中使用迅雷的问题
  8. 《博客园精华集》web标准分册第2论筛选结果文章列表
  9. oppo包名_常用APP(apk)对应包名总结(持续更新...)
  10. Dfinity(ICP)介绍-1
  11. 【编程开发】之 Java 实现邮件发送
  12. 网格计算, 云计算, 集群计算, 分布式计算, 超级计算
  13. word排版快捷指令_在word文档中如何利用快捷键快速排版呢?
  14. 使用pycharm和python遇到的一些问题
  15. 两岸四地消费者信心指数出炉:中国大陆消费者信心指数评析
  16. 微信android返回上一页位置,解决微信内置浏览器返回上一页强制刷新问题方法...
  17. NVIDIA_CUDA版本查看方法_WIN10
  18. SpringSecurity整合JWT
  19. 2023阿里,字节跳动,JAVA岗(一线企业校招、社招)面试题合集
  20. 【概念梳理】NMS 非极大值抑制

热门文章

  1. Python-Django毕业设计葡萄酒销售管理系统论文(程序+Lw)
  2. jenkins打包报错Failed to connect to repository : Command “/usr/bin/git ls-remote -h -- http://git.c5game
  3. HDU2066:一个人的旅行(Dijkstra算法模板+多源多目的最短时间问题)
  4. P100服务器使用注意事项
  5. 能加载文件或程序集“System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖
  6. 腾讯Libpag动画库研究2(Pag实现原理)
  7. 设计模式练习(19)——策略模式
  8. java i18n_Java国际化(i18n)
  9. 你为什么要作践自己取悦别人?
  10. 转载:正交表方法在创建测试套件上应用