这可能甚至不需要问,但我想确保我是对的。当您在 Java 中创建任何对象的数组时,如下所示:
Object[] objArr = new Object[10];
该变量objArr
位于堆栈内存中,它指向堆中数组对象所在的位置。堆中该数组的大小等于 12 字节对象头 + 4(或 8,取决于参考大小)字节 * 数组中的条目数。这是准确的吗?
那么,我的问题如下。由于上面的数组是空的,那么在执行那行代码之后,它是否立即占用了堆中 12 + 4*10 = 52 字节的内存?还是 JVM 会等到您开始将内容放入数组后才实例化它?数组中的空引用是否占用空间?