对于Java中的一维数组都是定长的,及声明后不能再改变数组的长度,如果需要改变数组的长度,那么只能重新创建一个更大容量的数组,并将原数组复制进去。
但是,对于二维数组,二维数组中的行数是不可变的(包括动态数组),但是每行的列数却是可变的,如下:
public static void main(String[] args) {
int[][] a = new int[3][3];
int[] b = new int[100];
a[0] = b;
System.out.println(a[0][88]);
}
对于以上代码,编译是不会报错的,这是因为二维数组中的a[0]中不是直接存储的数组第1行的所有内容,而是数组第1行所在的内存地址,因此,可以通过重新赋值,改变地址的指向,从而达到改变内部数组长度的效果。
对于三维数组,也是同样的道理