Java-final关键字的理解

final可以声明成员变量、方法、类和本地变量。

一、修饰变量

  1. 对成员变量和局部变量声明为final。
  2. final与static关键字连用,作为常量。(static关键字修饰变量时,该变量在类加载时就被初始化,不会随着对象创建再次被加载)
  3. final修饰基本数据类型对变量时,必须赋初值,且不能改变。修饰引用变量时,该引用变量不能再指向其他对象。(即final只保证这个引用类型变量所引用的地址不会发生改变,但这个对象属性值是可以改变的。

⚠️注意:变量名称大小写习惯

  1. 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。
  2. 如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

二、修饰方法

  1. 父类方法前加上final关键字,此方法不能再被子类重写,但可以被重载。
  2. final方法比非final方法快,因为再编译时已经静态绑定,运行时就不再需要动态绑定。

三、修饰类

  1. final类通常是功能完整的,不能被继承。
  2. String类、Interger类以及其他包装类都是final的。