在 Java 中,final
1. 声明常量
final
示例代码:
登录后复制
final int MAX_VALUE = 100;
// MAX_VALUE = 200; // 编译错误,不能改变常量值2. 方法不能被重写
在方法前加上 final
示例代码:
登录后复制
class Parent {
final void display() {
System.out.println("This is a final method.");
}
}
class Child extends Parent {
// void display() { // 编译错误,不能重写父类的 final 方法
// System.out.println("Trying to override.");
// }
}3. 类不能被继承
将 final
示例代码:
登录后复制
final class Utility {
static void helperMethod() {
System.out.println("Utility method.");
}
}
// class ExtendedUtility extends Utility { // 编译错误,不能继承 final 类
// }4. 引用不可变
在对象的情况下,将引用变量声明为 final,意味着这个引用不能再指向其他对象,但对象本身的内容仍然可以被修改。这在处理不可变对象时非常有用。
示例代码:
登录后复制
final List<String> myList = new ArrayList<>();
myList.add("Hello");
// myList = new ArrayList<>(); // 编译错误,不能改变引用5. 性能优化
被 final
6. 编译期常量
被 final
7. 编译器重排序规则
对于 final
- 在构造函数内对一个
final
- 初次读一个包含
final
- 域的对象的引用与随后初次读该
final
final 关键字在 Java 中具有重要的作用,可以用来声明常量、限制方法重写、防止类继承、管理引用的不可变性,以及优化性能。合理使用 final 可以提高代码的安全性、可读性和设计的清晰性,帮助开发者维护代码的稳定性。此外,final
















