【发布时间】:2013-07-19 07:47:28
【问题描述】:
我很困惑这是什么意思::
int[] array = new int[0];
这里分配了多少字节?还是没有在内存中分配任何内容?下面是什么?
【问题讨论】:
-
查看
Why is int[] a = new int[0]; allowed?了解其用法。
我很困惑这是什么意思::
int[] array = new int[0];
这里分配了多少字节?还是没有在内存中分配任何内容?下面是什么?
【问题讨论】:
Why is int[] a = new int[0]; allowed? 了解其用法。
这是一个长度为零的数组。
分配多少字节是特定于平台的,但这里仍然有一个数组,只是一个很短的数组。一般来说,Java中的数组需要
fixed overhead + length * componentSize
字节(然后可能会有一些填充)。
另外请注意,由于数组不能在 Java 中调整大小,并且零长度数组不能更新元素,这使得这些元素是不可变的,并且您实际上在整个程序中不需要多个实例,因此您可以使用像ArrayUtils.EMPTY_INT_ARRAY 这样的静态单例,节省“固定开销”。
【讨论】: