关于final关键字

final只是表示引用不能变,不代表被引用的对象不能改变。
例如:
final StringBuffer sb=new StringBuffer("aa");
sb.append("b");                  //这是可以的,他并没有改变引用,只是改变引用的对象。
sb=new StringBuffer("cc");             //这是不可以的,他试图改变引用。

final int a=1;
a=2;            //这是不可以的,a原来指向常量区的区中的1,后来想指向常量区的2,出现错误。

若类中成员属性用final来修饰,因为final的instant variable没有默认值,必须在构造函数结束前被赋予一个值。所以有如下两种方法来初始化final变量。
  • class Test{
final int a = 1;      //直接初始化
         }
  • class Test{
final int a;
            Test(){
                    a = 1;
            }
         }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值