Java 中的 final 关键字真的能防止一切修改吗?

63 阅读1分钟

final 是 Java 关键字,用于防止修改,但并非所有情况都能阻止更改。

1️⃣ 修饰变量:值不能变(基本类型),对象引用不能变(但对象内容可以变)。

final int a = 10; // 不能修改 a 的值  
final List list = new ArrayList<>();
list.add("Hello"); // 可以修改 list 的内容

2️⃣ 修饰方法:防止子类重写。
3️⃣ 修饰类:防止被继承,例如 String 类。

所以,final 只防止引用变更,不阻止对象内部状态修改!