一段Java代码不懂~~~~~请大虾指点一下0

来源:百度知道 编辑:UC知道 时间:2024/05/16 09:40:03
public class Array2D {
public static void main(String[] args) {
int[][] data;
data = new int[10][2];
data[0] = new int[5];
data[1] = new int[20];
System.out.println("data.length = " + data.length);
System.out.println("data[0].length = " + data[0].length);
System.out.println("data[1].length = " + data[1].length);
}
}

System.out.println("data.length = " + data.length);
为什么这段代码输出的效果只是10;请大虾指点一下~
还是不太明白~~~~~

data.length = 10
data[0].length = 5
data[1].length = 20
分析下,data.length是此2维数组data中的元素个数,明显,他里面是由10个数组长度为2的int数组组成的,所以是10,不用多解释了吧...
然后data[0]明显又指向了一个新的数组,新数组长度为5,所以为5咯..
再然后data[1]同理,为20...
至于前面data[0]和data[1]以前指向的数组,由于没有任何引用指向它们了..所以它们会很快被JVM销毁以释放内存资源..

JAVA中2维数组是有一维数组组成的,就是把一维数组当成数组元素,因此data.length就是一维数组的个数,data = new int[10][2]; 是定义10个由2个元素组成的一维数组,所以data.length也就是10,data[0].length是2,data[1].length也是2

data = new int[10][2];
就是定义一个长度为10的数组
数组的每个元素例如data[0] 是一个长度为2的数组。。。