Final and Static

自己对Final和Static的理解
无论Final还是Static都只能存储一个数据,而且不能被改变
一、基本数据类型
              首先不能因为是final字段的数据就认为,它的值在编译期间就知道。比如final int a = (int) (Math.random() * 20)就能说明这个问题.
int a 和 final int b的区别就是:b中如果有了值(不一定什么时候),就不能被改变(在运行期间).
final int a 和 static final int b的区别就是:a在不同的对象中有可能值不同,但是在对象存活期间只能为一个值,b在不同的对象的值肯定是一样的.
二、对象句柄
1.如果是自定义对象类型被final修饰了,就必须初始化,不然会报错误.
2.一旦指向了一个对象,对象可以改变,但是只身不能指向其他对象了.
3.函数参数final变量,无论是基本类型还是对象都是一样的,都不能在函数体中改变他的值.
三、Final方法
把方法设置为final类型的以后,此方法不能被子类改写(如果有这方面需求,正好用final类型的方法).
并且另一方面为了效率,相当于C语言中的inline函数一样,是直接插入调用的地方,不是用的调用机制.
四、Final类
把类设置为final类型的以后,此类不能被继承,并且类中所以的方法都是默认为final的,不影响类内部的final成员和非final成员,只是不能继承而已.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值