数组在内存中是如何被分配的,A[] a = new A[10],这一条语句又是怎么在内存中执行的,昨晚一直想着自己写的代码出现空指针异常的这句话,
我也在网上查了,看到别人相对较好的文章中说“空指针异常发生在对象为空,但是引用这个对象的方法上。”(地址:http://blog.csdn.net/wangkr111/article/details/7830079 )
发生在对象为空,那么说,对象是存在状态的,只不过它其中的值为空。我想着这句话,突然觉得是这样的,如图。
测试出空指针异常(Null.PointerException)代码如下
灰色是在堆上的意思,一个圈里是一个对象,箭头就是这个引用指向这个对象。
第一个图的What's missing?Dogs!We have an array of Dog references,but no actual Dog objects!就是回答你的问题。
第三个图是另一个程序里比较复杂的情况。
作者: 黄玉昆 时间: 2013-2-8 13:32