final关键字用于限制类、方法和变量的修改。1. 修饰变量时值不可变,基本类型值不变,引用类型地址不变但对象内容可变;2. 修饰方法时子类不能重写,确保关键逻辑安全;3. 修饰类时该类不能被继承,如String类,保证类的不可扩展性。
final 是 Java 中的一个重要关键字,主要用于限制类、方法和变量的行为。它的核心作用是“不可改变”。以下是 final 关键字的三种常见用法:
1. 修饰变量:表示值不可更改
当 final 修饰一个变量时,意味着该变量一旦被赋值,就不能再修改。 对于基本数据类型,值不能变;对于引用类型,引用地址不能变(但对象内部状态可以变)。 通常与 static 一起使用定义常量。示例:
- final int MAX_COUNT = 100; // 基本类型,值不可变
- final List
list = new ArrayList(); - list.add("hello"); // 允许:对象内容可变
- // list = new ArrayList(); // 错误:引用地址不能重新赋值
2. 修饰方法:表示方法不能被重写
final 修饰的方法不能在子类中被覆盖(override),但可以被继承和调用。 这常用于防止关键逻辑被篡改,增强程序的安全性和稳定性。示例:
- class Parent {
- final void print() {
- System.out.println("This cannot be overridden");
- }
- }
- class Child extends Parent {
- // void print() {} // 编译错误:不能重写 final 方法
- }
3. 修饰类:表示类不能被继承
final 类不能被其他类继承,即不能有子类。 这通常用于设计不可扩展的工具类或安全相关的类。 Java 标准库中的 String、Integer 等都是 fin
示例:
- final class Utility {
- public void doWork() { }
- }
- // class MyUtility extends Utility { } // 编译错误:不能继承 final 类
基本上就这些。final 的合理使用有助于提高代码的安全性和清晰度,特别是在多线程环境或设计不可变对象时非常有用。理解它的三种用法是掌握 Java 基础的重要一步。








