int x[][] = {{1, 2}, {3, 4}};
既然数组是对象,二维数组是数组的数组,那么这段小代码中有多少个对象呢?
三。一个用于顶级int[]
对象数组,两个int[]
对象。
元素(整数本身)不是对象。
我作为“对象”的标准是具有java.lang.Object
直接或间接超类型的东西。所有数组类型都是 的隐式子类型Object
,但是int
是原始数据类型...而不是 的子类型Object
。
另一件要注意的是,从字面上看,这int[][]
意味着“数组int[]
”......。int[]
您在 an 中找到的对象int[][]
是真实的一流对象。您的声明
int[][] x = {{1,2}, {3,4}};
是这个的简写:
int[][] x = new int[2][]();
x[0] = new int[]{1, 2};
x[1] = new int[]{3, 4};
你可以采取三种观点:
int
二维数组中有四个值。int
vs为中心的第三种观点,它产生了三个数组和四个值,实际上是第二种不同的措辞(所以 3 个 POV)arrays
int