当people在new的时候不是已经在堆区开辟了三个空间嘛,为什么后面给数组每一个元素初始化的时候还要再new
红框标识的是,定义了一个people数组,数组长度为3,这时每个数组元素都是null,只有每个元素实例化后,才能使用
数组和链表在存储方式上的不同导致了它们在初始化时的差异。数组是顺序结构,需要在物理层面上连续存储一段连续的空间,因此在初始化时需要一次性在堆区开辟足够的空间;而链表是由若干个节点组成的,每个节点存储下一个节点的指针,因此只需要在堆区开辟每个节点的空间,然后通过指针连接起来即可,不需要事先一次性开辟所有空间。 因此,在实例化一个数组时,必须为每一个元素再次使用new操作来初始化,因为它们在内存中是连续的,需要对每一个元素进行实例化操作。如果只是在new整个数组时就已经在堆区开辟了足够的空间,那么这些空间里的数据就是随机的,可能会对程序的正确性造成影响。