4
int x[][] = {{1, 2}, {3, 4}};

既然数组是对象,二维数组是数组的数组,那么这段小代码中有多少个对象呢?

4

2 回答 2

10

三。一个用于顶级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};
于 2013-04-03T10:15:43.857 回答
0

你可以采取三种观点:

  • int二维数组中有四个值。
  • 您还可以看到包含两个一维数组的单个一维数组,每个数组包含两个值。
  • Stephen C 在他的回答中公开了以intvs为中心的第三种观点,它产生了三个数组和四个值,实际上是第二种不同的措辞(所以 3 个 POV)arraysint
于 2013-04-03T10:15:36.917 回答