我很困惑这是什么意思::
int[] array = new int[0];
这里分配了多少字节?或者内存中没有分配任何东西?下面发生了什么?
答案 0 :(得分:4)
这是一个零长度数组。
分配了多少字节是特定于平台的,但是这里仍然有一个数组,只是一个很短的数组。通常,Java中的数组需要
fixed overhead + length * componentSize
字节(然后可能有一些填充)。
另请注意,由于数组不能在Java中调整大小,并且零长度数组不能更新元素,这使得这些元素不可变,并且在整个程序中实际上并不需要多个实例,所以你可以使用像ArrayUtils.EMPTY_INT_ARRAY这样的静态单例,保存“固定开销”。