1. 空指针异常的概念

java是没有指针的,所以java中空指针异常情况中的“指针”是指的是java的引用,空指针就是空引用。
java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常情况。
比如:成员变量和方法是属于对象的,在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些成员变量和方法。对于空指针情况,它不指向任何对象,也就没有所谓的成员变量和方法,这个时候用它去调用某些属性和方法,就一定会出现空指针异常情况。

2. 空指针产生的常见情况

  1. 当对象为null时,调用了其成员方法或属性。
  2. 在使用equals()比较两个对象是否相等时,当双方是一个常量和一个变量把变量放在常量前且当变量为空的时候,运行时会报错。
System.out.println(“abc”.equals(str5)); // 推荐:false
System.out.println(str5.equals(“abc”)); // 不推荐:报错,空指针异常NullPointerException
  1. 对key、value不能为null的容器put为null的key、value值。
  2. 自己搞的一个集合,当集合为空时,对其遍历会报空指针异常。PS:若使用mybatis做查询返回集合时,当没查到数据时,返回的集合不是空,而是一个size为0的集合。对其遍历不会报空指针异常。