Java - 数组创建和内存使用

时间:2014-08-21 08:40:37

标签: java arrays

非常基本的问题,但是这里说:使用这两种技术创建数组时是否存在任何真正的差异(除了需要更多时间写入的事实)?

Double[] array = new Double[3];
array[0] = new Double(1.0);
array[1] = new Double(2.0);
array[2] = new Double(3.0);

Double[] array = new Double[]{1.0, 2.0, 3.0}

此外,就内存使用而言,在我的第一个例子中,数组声明是否已为三个双精度分配空间(在这种情况下,3个后续行实际上不会增加​​内存使用量)?

3 个答案:

答案 0 :(得分:0)

没有区别,内存使用情况完全相同。

答案 1 :(得分:0)

它读取第二种方法的方式与读取第一种方法的方式几乎完全相同。它创建的对象也完全相同,因此执行时间或内存使用量都不同。

答案 2 :(得分:0)

内存使用情况与自动装箱会像您一样创建Double一样。

直接初始化会更快,但是因为数组会立即填充,而在第一种情况下,将首先创建一个具有null值的数组,然后将逐个填充每个需要的数组也是索引范围检查,也是索引值处理(0,1,2 - 在直接初始化时,根本不使用索引值,它们是隐式的)。