Java核心卷——final关键字

final英文解释最终的,不可变的。

修饰类 该类不可被继承

final class A{
    //A 是没有子孙的
}
class B extends A{
    //错误的, 无法从最终类A进行继承
    //B类继承A类 相当于对A类功能进行扩展
    //如果不希望别人对A类进行扩展,可以给A类加final关键字,如String类
}

修饰方法 不可以被重写(不能与abstract修饰一个方法)

class C{
    public final void doSome(){
       System.out.println("C's doSome...")
    } 
}
class D extends C{
 //错误,无法覆盖
 /*   public  void doSome(){
     System.out.println("D's doSome...")
    } */
}

修饰变量,只能被初始化一次

//局部变量
public static void main(String[] args) {
        // TODO Auto-generated method stub
		final int k=100;
		int i=5;
		k=10;//报错
		i=4;
    }
//全局
class User{
        final int age=10;
        //final int age; 报错

        final double weight;
        //初始化未写weight报错
        public User(){
            this.weight=80;
        }
    }

为什么说字符串是不可变的?

final 修饰的char数组 -》 数组不指向新的数组

  • final修饰String类 不能被其他人继承子类进行修改 1
  • String类内没有任何一个修改数组内容的方法

防止指令重排序 保证线程间可见性(并发

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值