首页 > 其他 > 详细

面试题:final关键字

时间:2020-12-31 16:26:11      阅读:61      评论:0      收藏:0      [点我收藏+]
  • final 标记的类不能被继承 。提高安全性,提高程序的可读性。
  • final标记的方法不能被子类重写。
  • final标记的变量,只能被赋值一次,即称为常量。
  • final和abstract这两个关键字是反相关的,final类就不可能是abstract的。
  • final方法在编译阶段绑定,称为静态绑定(static binding)。

对于final域,编译器和处理器要遵守两个重排序规则:

1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。

  原因:编译器会在final域的写之后,发现 final 变量的赋值也会通过 putfield 指令来完成,插入一个StoreStore屏障

2.初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。

  编译器会在读final域操作的前面插入一个LoadLoad屏障

面试题:final关键字

原文:https://www.cnblogs.com/dalianpai/p/14216012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!