Java final关键字

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值