final关键字详解

什么是final变量 / 类 / 方法?

任何变量前被 final 修饰就是 final 变量,定义的类前被 final 修饰就是 final 类,任何方法前被 final 修饰就是final方法。

当用final修饰一个类时,表明这个类不能被继承。

下面这段话摘自《Java编程思想》第四版第143页:

“使用 final 方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的 Java 版本中,不需要使用 final 方法进行这些优化了。“

意思就是说如果认为方法足够完整,子类不需要修改就可以用final方法,避免子类去修改。

final方法是静态绑定的,在编译时候就确定好是哪个类的方法,所以 final 方法比非 final 方法快一些。

final修饰变量和修饰引用变量到底有啥不同?

简单来讲,就是final修饰的常量普通变量不可改变,修饰的引用变量引用不可变,引用对象的内容可以改变!

final关键字有啥好处?

  • final方法比非final快一些
  • final关键字提高了性能。JVM和Java应用都会缓存final变量。
  • final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  • 使用final关键字,JVM会对方法、变量及类进行优化。
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信