java中final关键字的作用

java final关键字的作用

SE部分的知识

  • 作用在变量上,变量只能赋一次值,之后不能修改;作用在引用上,引用不能更改,但是引用所指的对象是可以修改的
  • 作用在类上不能被继承
  • 作用在方法上,不能被override

多线程相关

  • 在构造函数内,对一个final域的赋值一定会在该对象的引用赋值给一个变量之前。这句话的意思就是一定会先完成初始化再将对象赋值给变量,若不加final,重排序可能会导致先将引用赋给了变量,当访问成员变量时,数据可能还是使用的默认变量。
  • 初次读一个包含final域对象的引用,会先读引用,再读final域。如果读到引用为null,说明对象还没初始化完成。如果读的是不加final修饰的变量,不会有这种效果!!!
    参考《JAVA并发编程的艺术》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值