不是这样,数组长度是不可改变的
平时我们这样定义数组:
int[] arr1 = new int[3];
int[] arr2 = {1,2,3,4};
int[] arr3 = new int[]{1,2,3,4,5};
注意,数组是一种引用变量,在定义时堆内存中生成数组对象, 数组变量指向这个对象,
我们所说的数组长度不可改变就是指这个对象的长度在生成时就确定了,不可变
比如上面3个数组长度分别是3,4,5
如果非说数组长度可变,那只能是数组引用变量指向了别的数组了
比如arr1 = arr2,
arr1.length就变成4了,但这其实是因为指向不同对象的原因
你的代码里,char[] ch = readString.toCharArray();
先是readString.toCharArray()生成一个确定长度的数组对象,
然后数组引用ch 指向了这个数组对象
而数组引用ch 还是一个局部变量,每次都不一样的
个人总结,如有不妥,欢迎指正
|