在编程中,可变性是指在一个对象被创建后改变其状态的能力。
可变的对象意味着对象的状态或值可以被改变,而不可变的对象意味着对象的值是固定的。
Java中的数组是可变的,因为在数组被创建后,你仍然可以改变它的值。
在下面的例子中,myArray 在索引2 的值在它被初始化后被改变:
Integer[] myArr = {1, 2, 3};
myArr[2] = 55;
System.out.println(Arrays.toString(myArr));
上面的println() 方法的输出将显示[1, 2, 55] ,而不是[1, 2, 3] 。
但是即使Java数组是可变的,数组的类型和长度在初始化时是最终的。
这意味着一旦你创建了一个由3 元素组成的Integer 数组,该元素在其生命周期内只能容纳3 类型的元素Integer 。
当你创建一个String 类型的数组时也是如此:
String[] myArr = {"Java", "Kotlin"};
myArr[0] = 55; // ERROR: Required String
可变性只关注你是否可以改变对象的值。
这就是为什么一个数组是可变的,即使你在初始化后不能改变数组的类型和长度。
在Java中数组是可变的吗?答案是肯定的。