更新时间:2023-05-15 来源:黑马程序员 浏览量:
当使用final关键字修饰一个变量时,这个变量就成为了一个常量,它的值不能被修改,但是它所引用的对象本身是可以被修改的。
具体的原因我们看如下代码演示:
final int x = 5; x = 6; // 编译错误,因为 x 是 final 常量,它的值不能被修改 final StringBuilder sb = new StringBuilder("Hello"); lb.append(", World!"); // 可以修改 lb 所引用的 StringBuilder 对象 System.out.println(lb.toString()); // 输出:Hello, World!
在上面的代码中,我们使用final关键字定义了一个整数常量x,它的值被设为5。然后我们试图将x的值修改为6,但是由于x是一个常量,所以编译器会报错。
接着我们定义了一个StringBuilder对象,用final修饰它的引用lb。然后我们可以通过lb引用来修改 StringBuilder对象的内容,例如向其中添加一些文本。最后,我们将StringBuilder对象的内容输出到控制台上,可以看到输出结果为 "Hello, World!",表明StringBuilder对象的内容已经被成功修改了。