final使用的三种情况:数据、方法和类。
1.final数据
对于基本类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象,然而对象自身是可以被修改的。
空白final必须在域的定义处或者在构造器中赋值。
2.final方法
使用final方法的原因有两个,第一个是把方法锁定,以防任何继承类修改它的含义,这是出于设计考虑,想要确保在继承中使方法行为保持不变,并且不会被覆盖,过去建议使用final方法的第二个原因是效率,现在由于虚拟机的发展,这种做法不应该在使用了,应该让编译器和虚拟机去处理效率问题,只有在想要明确禁止覆盖时,才将方法设置为final的。
类中所有的private方法都隐式地指定为是final的
final方法属于前期绑定,因此final方法有效关闭动态绑定,这样编译器就可以为final方法调用生成更有效的代码,然而,大多数情况下,这样做对程序的整体性能不会有什么改观。
2.final类
当将某个类的整体定义为final时,就表明了你不打算继承该类,而且也不允许别人这样做,换句话说,出于某种考虑,你对该类的设计永远不需要做任何变动,或者出于安全的考虑,你不希望它有子类。
final类中所有的方法都隐式指定为final的,因为无法覆盖它们。
Java final关键字
最新推荐文章于 2022-05-20 16:19:47 发布