Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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-数组创建和内存使用_Java_Arrays - Fatal编程技术网

Java-数组创建和内存使用

Java-数组创建和内存使用,java,arrays,Java,Arrays,这是一个相当基本的问题,但这里有一个问题:使用这两种技术创建数组时,有什么真正的区别吗(除了编写一个数组需要更多的时间这一事实) 或 此外,就内存使用而言,在我的第一个示例中,数组声明是否已经为三个double分配了空间(在这种情况下,后面的三行实际上不会增加内存使用)?没有区别,内存使用将完全相同。它读取第二个方法的方式几乎与读取第一个方法的方式完全相同。它创建的对象也完全相同,因此执行时间和内存使用量都不会有差异。内存使用量将与自动装箱相同,自动装箱将创建与您相同的双s 直接初始化将更快,因

这是一个相当基本的问题,但这里有一个问题:使用这两种技术创建数组时,有什么真正的区别吗(除了编写一个数组需要更多的时间这一事实)


此外,就内存使用而言,在我的第一个示例中,数组声明是否已经为三个double分配了空间(在这种情况下,后面的三行实际上不会增加内存使用)?

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

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

内存使用量将与自动装箱相同,自动装箱将创建与您相同的
s


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

这是相同的。内存使用相同。不,没有。只是在以后(后面的3行)这将增加内存使用量。但是,这两种方法的内存使用量都相同。请参见我的第一个示例中的当数组充满空值时,它是否仍然实际使用了3倍的内存?或者,在我在后续行中实际创建3倍的新内存之前,不会发生这种情况?是的,会发生。当您引用<代码>Double
array,它已经能够存储对Double
s的引用,因此它已经占用了所需的内存。
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}