我对java中的数组有一些疑问:Java计数数组对象
在下列表达式中创建了多少个对象?
(a)new int[0]
:有一个对象被创建,一个大小为0的数组。
(b)new int[2][2]
:有一个对象创建,一个数组有2行和列。
(c)new int[2][]
:没有创建对象?
我想知道如果我的解决方案旁边的表达式是正确的。如果没有,希望你能帮忙,并给我一些关于他们的解释。我真的不知道我应该做什么。
在此先感谢!
我对java中的数组有一些疑问:Java计数数组对象
在下列表达式中创建了多少个对象?
(a)new int[0]
:有一个对象被创建,一个大小为0的数组。
(b)new int[2][2]
:有一个对象创建,一个数组有2行和列。
(c)new int[2][]
:没有创建对象?
我想知道如果我的解决方案旁边的表达式是正确的。如果没有,希望你能帮忙,并给我一些关于他们的解释。我真的不知道我应该做什么。
在此先感谢!
新INT [0]
是这是一个空数组,则创建一个对象。
int[] emptyArray = new int[0];
System.out.println(emptyArray.length); // Outputs 0
新INT [2] [2]
是这创建和阵列2点的行和列,被创建3个对象。
int[][] bar = new int[2][2];
System.out.println(bar.getClass()); // Outputs class [[I
int[] bar1 = bar[0];
System.out.println(bar1.getClass()); // Outputs class [I
int[] bar2 = bar[1];
System.out.println(bar2.getClass()); // Outputs class [I
新INT [2] []
Java支持交错数组。这意味着当您创建int[2][]
时,这意味着您拥有各种尺寸的int[]
。这里只创建一个对象。
int[][] foo = new int[2][];
System.out.println(foo[0]); // Outputs null
System.out.println(foo[1]); // Outputs null
foo[0] = new int[10];
foo[1] = new int[5];
我明白你做了什么,但有多少“对象”被创建?我的意思是如果你只是编码int [] [] foo = new int [2] [];不会有任何对象吗?因为空的[] []必须先填充? – user1923369
我相信'new int [2] []'只会创建一个对象,它是数组对象本身。我可能错了。 –
是的,我认为Eng.Found是正确的。每个情况下只有一个对象,因为用户正在添加数据类型。但是,多个存储位置将被分配 –
以下是从Java规范的摘录:
在Java编程语言阵列对象(第4.3.1节),是 动态创建的,并且可以被分配到的变量键入对象 (§4.3.2)。可以在数组上调用Object类的所有方法。
这意味着每个数组都是一个自己的对象,这使得您的回答a)正确。创建
B) 3对象:1个阵列的第一和含有各2组int
的两个阵列。我不会指望int
-entries,因为它们是Java中的基本类型。
c) 1个对象被创建:1个包含两个空条目的数组。
我相信我现在明白这一点,非常感谢您的帮助! – user1923369
解释你的问题 –
看起来像一个考试问题。 _“我不太确定这个问题的含义”_? – Henrik
a)一个对象b)3个对象c)1个对象 – nhahtdh