Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,一个表达式“quot;新国际[3][3]”;在堆内创建多少个数组?_Java_Arrays_Oop - Fatal编程技术网

在Java中,一个表达式“quot;新国际[3][3]”;在堆内创建多少个数组?

在Java中,一个表达式“quot;新国际[3][3]”;在堆内创建多少个数组?,java,arrays,oop,Java,Arrays,Oop,我的意思是,它看起来确实创建了3个数组,其中包含3组int元素。 但是如果我们潜得很深,不是应该是4点吗? 因为创建了一个额外的数组,用来存储这3个数组中每个数组的引用 这个额外数组的引用实际上是存储在LHS上变量上的 例如:int A[][]=新int[3][3] 这意味着“变量A”包含->引用数组“[1个引用对应1个数组]的引用,每个引用包含->每个数组[最终存储真元素]的引用 因此,我们有3个存储元素的数组和1个存储引用的数组,总共4个数组。int[]a=new int[3][3]将总共创

我的意思是,它看起来确实创建了3个数组,其中包含3组int元素。 但是如果我们潜得很深,不是应该是4点吗? 因为创建了一个额外的数组,用来存储这3个数组中每个数组的引用

这个额外数组的引用实际上是存储在LHS上变量上的

例如:int A[][]=新int[3][3]

这意味着“变量A”包含->引用数组“[1个引用对应1个数组]的引用,每个引用包含->每个数组[最终存储真元素]的引用


因此,我们有3个存储元素的数组和1个存储引用的数组,总共4个数组。

int[]a=new int[3][3]
将总共创建4个数组:

  • 3个数组,包含
    int
    (即包含
    int
    值的数组),大小为3。它们的类型是
    int[]
  • 1个数组,包含大小为3的
    int[]
    (即包含对
    int[]
    数组的引用的数组)。这种类型是
    int[][]

请注意,表示法
inta[][]
相当于
int[][]a
,但在Java中普遍不鼓励这样做:最好将完整的类型描述放在一个位置,而不要在变量名前后“展开”。第二种表示法允许与C代码“兼容”,但并未真正使用。

int[][]a=new int[3][3]
将总共创建4个数组:

  • 3个数组,包含
    int
    (即包含
    int
    值的数组),大小为3。它们的类型是
    int[]
  • 1个数组,包含大小为3的
    int[]
    (即包含对
    int[]
    数组的引用的数组)。这种类型是
    int[][]

请注意,表示法
inta[][]
相当于
int[][]a
,但在Java中普遍不鼓励这样做:最好将完整的类型描述放在一个位置,而不要在变量名前后“展开”。第二种表示法允许与C代码“兼容”,但并未真正使用。

是的,
newint[3][3]
是一个由三个数组组成的数组;总共有四个数组。是的,
newint[3][3]
是一个由三个数组组成的数组;总共有四个阵列。