final修饰变量的引用不可变举例

本文详细解析了Java中final关键字的使用,包括final修饰类、方法和变量的规则。final修饰的类无法被继承,确保了类的封闭性;final方法不能被重写,但能重载;final变量一旦初始化后,引用不可变,但引用的对象内容可变。文中通过实例解释了final在实际编程中的应用和注意事项,帮助读者更好地理解和运用final关键字。
摘要由CSDN通过智能技术生成

final:

修饰的类不能被继承,

修饰的方法不能重写(可以重载),

修饰的变量不可变,注意这里的不可变是指引用不可变,值是可变的

例如:final String a = "a"; a = "ab";//报错

final Map<String,Integer> map = new HashMap<>();

map.put("a",1);//编译通过

原因为final修饰的变量引用不可变,a指向对象String "a",该引用不能发生改变,而a = "ab"则是将a指向另一个对象String "ab",这是不允许的。

而final修饰的map调用put方法只是给内存地址加上一个键对,没有改变map指向这个对象的引用,则编译通过,但如果令map = new HashMap<>();则依然会报错,改变了引用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值