final
是Java中用于限制修改的关键字,它可以修饰类、方法和变量,被修饰的实体将具有"不可改变"的特性。合理使用final关键字能提高代码安全性、可读性,并有助于JVM进行优化。
final class Person { // 无法被继承的最终类
// 类内容...
}
// 错误示例:尝试继承final类会报错
// class Teacher extends Person {}
class Student {
public final void study() { // 不可重写的最终方法
System.out.println("基础学习方法");
}
}
class CollegeStudent extends Student {
// 错误示例:尝试重写final方法会报错
// @Override
// public void study() { ... }
}
final int MAX_AGE = 100;
// MAX_AGE = 120; // 编译错误:不可重新赋值
final List<String> names = new ArrayList<>();
names.add("Alice"); // ✅ 允许修改对象内容
names.add("Bob");
// names = new ArrayList<>(); // ❌ 禁止重新指向新对象
class MyClass {
// 必须在声明时或构造器中初始化
final int INIT_VALUE;
MyClass() {
INIT_VALUE = 10; // 正确初始化方式
}
}
public static final String APP_VERSION = "1.0.0";
// 常用于全局配置常量,命名建议全大写+下划线
修饰对象 | 适用场景 | 优势 |
---|---|---|
类 | 工具类、值对象类 | 保证类完整性,防止继承破坏设计 |
方法 | 模板方法模式中的固定步骤 | 锁定核心算法 |
变量 | 配置参数、不变对象引用 | 提高线程安全性 |
final
关键字通过以下方式提升代码质量: