java final 关键字

final 关键字
 与c和c++一样java也可以告诉一个数据块是永恒不变的比如
1、一个永恒不变的常量(必须是基本类型)
2、一个运行时被初始化的之你不希望它改变
3、和static 配合 声明一段不可改变的存储空间
 final 声明的数据:
a. private final int VALUE = 9;
b. private static final int VALUE = 9;
c .public static final int VALUE = 9;
这三种情况a和b区别不大 因为都作用与 类的内部 只是在类内部访问但不可以改变其值
c用了public关键字 这样变量的值可以在包外访问那么这个区域就是全局的了(这就是一段不可变但可以全局访问的区域)
但是这些值不是在编译时期就可以全部知道的
我们也可以 static final int VALUE = rand.nextInt(99);
d. static final Object1 V = new Object1();
这里的V无法重新指向另一个对象
final int [] a= {};
这里的a也无法指向其他数组
空白的final
声明为final 的变量又未赋初值,使final的使用更具灵活性
final 的参数
将参数声明为final 意味着方法中无法更改参数所指的对象
final声明的方法
1、锁定该方法(任何继承类都无法修改它的含义)该方法永远不会被覆盖
2、提高效率 
3、关闭动态绑定,告诉编译器不需要对此方法做动态绑定
起初java的实现里调用final声明的方法那么该方法会被转换为内嵌调用来提高代码的效率但是如果大量使用造成代码膨胀,所以性能提高也会变得不明显
所以在SE5/6 以后的版本 final 更多应用于禁止方法的覆盖。
final 和 private 
这二者 声明的方法都是无法被覆盖的,类中的private 方法隐式的指向final 所以 用final 修饰 private 方法没多大意义。
final类
final类禁止被继承,并且final类里面的方法默认指定为final的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值