一、空指针出现场景罗列(欢迎补充)
定义:调用了未经初始化的对象或者是不存在的对象。
1、String类型的变量str未经初始化,直接调用str.equals("xxx")
public static void main(String[] args) {
demo1(null);
}
private static void demo1(String a) {
a.equals("aaa");
}
"xxx".equals(str)则可以避免NullPointerException异常。
2、自动拆箱操作
private static void demo2() {
Integer a = null;
System.out.println(a + 1);
}
a进行拆箱操作时会调用Integer的intValue()方法,会报Java.lang.NullPointerException。
3、将 null 作为一个数组,获得其长度、访问或修改其位置
private static void demo3() {
String str[] = null;
System.out.println(str.length);
System.out.println(str[0]);
}
数组的初始化是对数组分配需要的空间,
而初始化后的数组,其中的元素并没有实例化,依然是空的,
所以还需要对每个元素都进行初始化(如果要调用的话)。
4、将 null 作为 Throwable 值抛出
5、对数据库查询的集合进行判空
二、判空操作
待...