数组分配

时间:2013-07-19 07:47:29

标签: java arrays

我很困惑这是什么意思::

int[] array = new int[0];

这里分配了多少字节?或者内存中没有分配任何东西?下面发生了什么?

1 个答案:

答案 0 :(得分:4)

这是一个零长度数组。

分配了多少字节是特定于平台的,但是这里仍然有一个数组,只是一个很短的数组。通常,Java中的数组需要

fixed overhead + length * componentSize 

字节(然后可能有一些填充)。

另请注意,由于数组不能在Java中调整大小,并且零长度数组不能更新元素,这使得这些元素不可变,并且在整个程序中实际上并不需要多个实例,所以你可以使用像ArrayUtils.EMPTY_INT_ARRAY这样的静态单例,保存“固定开销”。