理解Java中的final关键字

final关键字的基本用法

1. 修饰类

出于安全考虑,类无法被继承

2. 修饰方法

防止继承类修改方法
private方法会隐式指定为final方法;

3. 修饰变量

基本数据类型,初始化后不能再修改;
引用类型,不能改变引用指向;


局部内部类为什么只能访问局部final变量

public void test(final int b) {
    final int a = 10;
    new Thread(
            new Runnable() {
              @Override
              public void run() {
                System.out.println(b);
                System.out.println(a);
              }
            },
            "T1")
        .start();
  }

局部内部类访问的局部变量在编译时,对于已经明确赋值拷贝到局部内部类,变成其局部变量;如果内部类中修改了该变量,就无法保证数据一致性。添加final关键字,可以防止内部类修改;
Java 8中不加final关键字,编译不会报错,但在内部类中修改变量,编译会报错。

posted @ 2020-05-01 16:10  孤独剑_001  阅读(151)  评论(0)    收藏  举报