这里我们首先要明确什么是指针,指针指的是什么?
指针:指针存放的是内存地址
那什么是空?
举个例子:小明过生日,小华送给了小明一个“礼物”,这个“礼物”只有一个外面的包装但是里面什么都没有,这个礼物就是"",而空则是小华压根没有给小华准备礼物,这个就是null。
空指针:所以当指针不指向任何内存地址时,就叫做空指针,例如:int[] array = null
那么什么叫做空指针异常呢?
就是一个指针不指向任何内存地址,但是你还调用他了,例如:
int[] array = null;
System.out.println(array[0]);
这个时候原本array数组是个空指针,没有创建新的对象,在调用这个数组的时候就会产生空指针异常的错误!
程序运行会显示Exception in thread "main" java.lang.NullPointerException
的异常提示
这里我们用上面举的例子进行说明,int\[\] array = null在内存中的栈内存中创建了一个叫做array的变量,而堆内存中并没有开辟int类型的数组空间,所以在栈内存中的这个array变量没有存放任何内存地址,由此我们可以理解为什么会产生空指针异常,调用没有的东西显然时不可以的。