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