关于JAVA空指针问题

关于java.lang.NullPointerException异常问题 以下则会发生空指针异常

1.对象中的空字段访问或修改

1
if(map.get("demo1").equals("i7o"));

2.null对象调用实例方法

1
2
3
//假设定义了一个类Student有一个方法show()输出“show”;            		
Student demo2 = null;
demo2.show();

3.将 null 长度视为一个数组

1
2
3
4
int[] demo3 = null;
for(int i =0;i<10;i++){
demo3[i] +=i;
}

4.访问或修改 的插槽 null ,就好像它是数组一样

1
2
int[] c = null;
System.out.println(c[1]);

5.像一个值一样Throwable投掷null

1
2
Throwable demo5 = null;
throw demo5;

经过测试以上五条是会发生空指针的异常的情况,首先先去了解为什么会发什么异常,其次我们才会有意识的去防止发生空指针报错的问题。


null是什么?

1.null用来表示一个引用没有任何对象

2.当一个引用类型的变量被赋予null时,意味着这个变量没有引用任何实际的对象

3.对应所有引用类型的所有变量没有显示初始化的时候,默认情况就是null

4.null是一种无类型的特殊值,它可以被任何引用类型的变量赋值,但是不能赋值给基本类型


对象

1.Null对象只能对引用类型


所以该怎么去预防这类空指针问题

先判断对象是否为空再进行访问和修改

如果未实例化的对象去访问访问,则如此去判断是否未空对象

建议使用

1
if(null != Object)

总结

了解空指针触发的原理,原因就是进行空对象的访问,以及对象的空值去调用方法,这一切都会发生空指针。

所以我们需要判断是否为空对象,是否为未实例化的对象,因为未实例化的对象默认为null值。