为什么new关键字使用两次来创建对象数组

时间:2013-12-19 19:45:38

标签: java arrays keyword

我是Java的新手,我刚刚处理了对象数组。我很好奇为什么Java要求我对数组使用以下语法

SomeClass[] object = new SomeClass[50]; // any positive integer works
object[2] = new SomeClass(some, parameters);

据我了解, new 关键字在内存中分配实例的数据。我想知道为什么Java在这里两次使用 new 关键字。我认为它只需要在初始化对象时使用new关键字,而不是在声明对象时使用。所以,我的问题是:为什么Java在创建对象数组时会使用new关键字两次?

4 个答案:

答案 0 :(得分:4)

这里,new关键字被使用了两次,因为正在创建两个对象 - 一个数组和一个SomeClass恰好放在数组中。

答案 1 :(得分:1)

第一个是创建一个引用数组。第二个是为数组中的每个元素创建实际对象。

答案 2 :(得分:1)

你需要创建容器(在你的情况下是一个数组),以及你的每个元素(也是一个对象)打算放在那个容器里。

在你的情况下,我注意到你创建了一个包含50个元素的数组。这意味着您可以索引 object[0]直至并包括object[49]。创建容器后,每个object[n]都将成为null引用。

答案 3 :(得分:1)

SomeClass[] object = new SomeClass[50];

分配一个包含50个未初始化引用的数组

object[2] = new SomeClass(some, parameters); 

分配并实例化数组中第三个索引引用的对象