-1

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

int[] array = new int[0];

这里分配了多少字节?还是没有在内存中分配任何内容?下面发生了什么?

4

1 回答 1

4

这是一个零长度数组。

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

fixed overhead + length * componentSize 

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

另请注意,由于数组无法在 Java 中调整大小,并且零长度数组无法更新元素,这使得它们不可变,并且您实际上在整个程序中不需要多个实例,因此您可以使用静态像ArrayUtils.EMPTY_INT_ARRAY这样的单例,节省了“固定开销”。

于 2013-07-19T07:48:52.787 回答