在Java中,`final` 关键字是一个非常重要的修饰符,它用于表示一个变量、方法或类是不可变的。当`final`用于变量时,它意味着这个变量的值一旦被初始化之后就不能被改变。这对于定义常量非常有用,因为它确保了变量在整个程序运行期间都保持其初始值不变。
final 变量的基本用法
在Java中,`final` 变量可以是基本数据类型的变量,也可以是引用类型的变量。但是,当`final`用于引用类型的变量时,它指的是引用本身是不可变的,而不是对象本身不可变。也就是说,你不能让`final`引用指向另一个对象,但是你可以修改该对象内部的状态(如果对象是可变的)。
示例代码
public class FinalExample {
// final 修饰的基本数据类型变量
final int MAX_VALUE = 100; // MAX_VALUE的值被初始化为100,之后不能被修改
// final 修饰的引用类型变量
final String NAME = "Java"; // NAME的引用指向"Java"字符串,之后NAME不能指向另一个字符串
public static void main(String[] args) {
// 尝试修改final变量的值,会编译错误
// MAX_VALUE = 200; // 编译错误
// 尝试让final引用指向另一个对象,会编译错误
// NAME = "Python"; // 编译错误
// 但是,如果对象是可变的,我们可