final修饰的 数组可以改变吗?
时间: 2023-10-03 19:07:06 浏览: 102
当使用`final`修饰数组时,数组的引用也变成了不可改变的,即不能再指向其他数组对象。然而,数组中的元素本身是可以改变的。例如:
```java
final int[] numbers = {1, 2, 3};
System.out.println(numbers[0]); // 输出: 1
numbers[0] = 10; // 正确,可以修改数组元素的值
System.out.println(numbers[0]); // 输出: 10
numbers = new int[]{4, 5, 6}; // 错误,final变量不能重新赋值
```
在上述例子中,使用`final`修饰的数组`numbers`不能再指向其他数组对象,但是我们可以通过该引用修改数组中元素的值。然而,重新赋值给`numbers`是不允许的。
相关问题
final修饰的数组
final修饰的数组表示该数组的引用不可变,但是数组中的元素可以被修改。也就是说,final修饰的数组可以向其中添加、删除或修改元素,但是该数组的引用不能被重新赋值。例如:
```
final int[] arr = new int[]{1, 2, 3};
arr[0] = 4; // 合法,修改数组元素
arr = new int[]{4, 5, 6}; // 非法,final修饰的数组引用不可变
```
final 修饰 stringbuffer 后还可以 append 吗?
可以。final 修饰的是变量,即指向 StringBuffer 对象的引用,而不是 StringBuffer 对象本身。因此,即使使用 final 修饰了 StringBuffer 对象的引用,仍然可以通过该引用调用 StringBuffer 对象的方法,包括 append 方法。