空白final final方法 final与private

所谓空白final就是指不初始化后续再对其进行赋值,但是这个操作只能进行一次,也就是不能二次赋值,因为final是不能改变的。

public class Test {
	private final int j;//空白final
	public Test()
	{
		j = 1;//对final进行初始化
	}
}
但是如果只有空白 final但是没有对其进行初始化的话会报 The blank final field j may not have been initialized

===========================================================================================================

final方法

使用final方法的原因有两个

1.把方法锁定,以防任何继承类修改它的含义,确保在继承中使方法行为保持不变,并且不会被覆盖。

2.以前是为了效率才使用final。在java早期,如果将方法指明为final,就是同意编译器将其转为内嵌调用。调用final命令时会和正常方式不一样,而是将参数压入栈,跳至方法代码处并执行,然后跳回并清理栈中内容,处理返回值。这样就消除了方法调用的开销,会提高效率,但是当放大很大是,程序代码就会膨胀,内嵌所带来的性能提高会因为花费于方法内的时间量而被缩减。  (这段书上是这么说,因为对底层实现不了解,所有也理解的不够透彻)

在最近的java版本中,已经不再需要final来进行优化了,有了新的技术来取代。在java SE5/6是,应该让编辑器自己去处理效率问题,只有在想要明确禁止覆盖时,才将方法设置为final

===========================================================================================================

final与private关键字

类中所欲的private方法都隐式地指定为是final的。由于无法取用private方法,所有也就无法覆盖它。可以对private方法添加final修饰词,但不会增加任何意义。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值