Skip to content

Final关键字是什么

final 是 Java 中的一个关键字,用于表示 不可变性,可以修饰 方法变量。修饰类时禁止继承,修饰方法时禁止重写,修饰变量时使其值不可修改(常量)。它增强了代码的安全性和可预测性。

关键事实

  1. 修饰类
    • 类不能被继承。
    • 示例:final class MyClass。
  2. 修饰方法
    • 方法不能被子类重写。
    • 示例:final void myMethod()。
  3. 修饰变量
    • 变量值不可变,变为常量。
    • 示例:final int MY_CONST = 10。
  4. 作用
    • 防止修改或扩展,保证稳定性。

具体详解

1. 修饰类

  • 含义:类无法被子类继承。

2. 修饰方法

  • 含义:子类不能重写该方法。
  • 用途:锁定关键逻辑,防止篡改。

3. 修饰变量

  • 含义:变量赋值后不可变。
  • 分类
    • 基本类型:值不可变。
    • 引用类型:引用不可变,但对象内容可变。
  • 初始化
    • 静态常量:static final,类加载时赋值。
    • 实例变量:在声明、构造器或初始化块中赋值。

延伸与面试角度

  • 为什么用 final?
    • 安全性:防止意外修改或继承(如 String)。
    • 性能:编译器可优化(如内联 final 方法)。
  • 与常量区别
    • final 变量是运行时常量,值可在构造时确定。
    • 编译期常量(static final)在编译时替换。
  • 实际应用
    • :String、Math,确保不可变。
    • 方法:锁定模板方法。
    • 变量:定义 PI = 3.14。
  • 常见误解
    • final 对象内容可变(如 final List 可添加元素)。
  • 面试点
    • 问“final 对象可变吗”时,提引用 vs 内容。
    • 问“优化”时,提内联和不可变性。

总结

final 关键字修饰类(不可继承)、方法(不可重写)和变量(不可改值),确保代码稳定性和安全性。基本类型值固定,引用类型引用固定。面试时,可结合 String 或常量示例,展示理解深度。