空指针异常(java.lang.NullPointException)做为java中的一个经典异常,对于咱们这些小白来讲真的是屡见不鲜,java
今天咱们就来详解一哈。spa
形成此异常的主要缘由:指针
当一个空引用访问实例相关的数据时发生。对于引用这个概念不清楚的同窗能够看看我以前在面向对象那一节写的博客。对象
首先咱们要了解建立对象时JVM内存中到底发生了什么?blog
仍是以学生类为例内存
这是我定义的类和建立的对象,name空指针异常是如何形成的呢?博客
在正常状况下,建立对象后引用s会保存一个内存地址,假设我如今调的是name,io
s指向堆内存中的Student对象里面的name变量
当引用s为null时,保存的内存地址没有了,引用s就成了一个空指针;当内存地址为空后,引用
就没法指向想要调用的实例变量,就会产生空指针异常
---恢复内容结束---