在Java中,定义数组是为引用还是为对象本身分配空间?

Sha*_*ala 4 java memory arrays reference

在下面的代码行中,编译器是否分配内存来存储MyClass的10个对象或10个引用?

MyClass[] arr= new MyClass[10];
Run Code Online (Sandbox Code Playgroud)

换句话说,数组是单独存储引用还是对象本身?

此外,原始类型的行为是否不同?

Mar*_*elo 5

它为引用分配空间.在原始类型的情况下,它分配空间=数组长度*基本类型字节大小.


NPE*_*NPE 5

当像这样创建时,数组会自动使用其类型的默认值进行arr初始化,因此使用10个null引用进行初始化.