2.2.1 final可以修饰类,用final修饰的类不可再被继承

  • String类就是final类,不能再被继承
    • String类是用关键字final(public final class),不能再被继承
  • Matn是final类,不能被继承
  • Integer、Long、Character等包装类是final类,不能被final类继承

    2.2.2 final可修饰的资源

  • final可以修饰局部变量

  • final可以修饰方法参数
  • final可以修饰成员变量(常量)

    2.2.3 final static

  • java使用final static修饰的变量将作为常量

  • 名称大写,单词隔下划线

    2.2.4 注意:

    被final修饰的变量和类方法不能被覆盖(重写)。

    2.3.1 final的成员变量:

    final的成员变量是不可变的,一方面如果成员变量是基本数据类型的变量,该成员变量的值将不能改变;另一方面,如果成员变量是对象引用变量。其指向的对象是不能发生变化的。对于对象引用变量,虽然其指向的对象不能发生改变,但是指向对象本身的一些属性还是可以发生改变的。
    例如定义数据变量为final的,由于数组也是对象。因此数组的元素可以发生改变。

    2.3.2 final的局部变量:

    final的局部变量跟final的成员变量类似,表示的也是“不可变”的观点,成员变量的不同之处在于final的局部变量只能在代码块中初始化一次