Java 中的 final 关键字真的能防止一切修改吗?
final 是 Java 关键字,用于防止修改,但并非所有情况都能阻止更改。
1 修饰变量:值不能变(基本类型),对象引用不能变(但对象内容可以变)。
final int a = 10; // 不能修改 a 的值
final List<String> list = new ArrayList<>();
list.add("Hello"); // 可以修改 list 的内容
2 修饰方法:防止子类重写。
3 修饰类:防止被继承,例如 String 类。
所以,final 只防止引用变更,不阻止对象内部状态修改!