因为你的数组类型是引用类型,即你自定义的Person,对于引用类型,如果是动态初始化,Person[ ] stu = new Person[ 4],这种方式,则只会分配内存空间,但是由于里面的元素0,1,2,3都没有初始化,所以都是null,而null是不分配内存的。
你换一种写法的话,就会分配内存了,Person[ ] stu = new Person[]{new Person(),new Person(),new Person(),new Person()}或者Person[ ] stu = {new Person(),new Person(),new Person(),new Person()},这两种写法是静态初始化,数组初始化的时候元素就已经确定了,所以自然也就会分配内存了。