空指针异常就是我们在对空对象进行的任何操作都会报空指针异常。
空指针的解决办法:
重点关注报错发生的所在行,同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。
1、null是Java中的关键字,像public、static、final。它是大小写敏感的,
你不能将null写成Null或NULL,编译器将不能识别它们然后报错。
2、就像每种原始类型都有默认值一样,如int默认值为0,boolean的默认值为false,
null是任何引用类型的默认值,不严格的说是所有object类型的默认值。
Java中的任何引用变量都将null作为默认值。这对所有变量都是适用的,
如成员变量、局部变量、实例变量、静态变量(但当你使用一个没有初始化的局部变量,编译器会警告你)。
3、null既不是对象也不是一种类型,它仅是一种特殊的值,
你可以将其赋予任何**引用类型**,你也可以将null转化成任何类型。
4、null可以赋值给引用变量,你不能将null赋给基本类型变量,
例如int、double、float、boolean。如果你那样做了,编译器将会报错。
5、任何含有null值的包装类在Java拆箱生成基本数据类型时候都会抛出一个空指针异常。(例如Integer拆箱成int时)
6、如果使用了带有null值的引用类型变量,instanceof操作将会返回false。
(instanceof:用来在运行时指出对象是否是特定类的一个实例,例如:Integer num = null,
那么,调用 num instanceof Integer时会返回false)
7、不能调用非静态方法来使用一个值为null的引用类型变量,它将会抛出空指针异常;
可以使用静态方法来使用一个值为null的引用类型变量,因为静态方法使用静态绑定,不会抛出空指针异常。
8、你可以使用==或者!=操作来比较null值,但是不能使用其他算法或者逻辑操作,
例如小于或者大于。跟SQL不一样,在Java中null==null将返回true。
1.字符串空值判断
StringUtils.isNotEmpty(?);或者if (StringUtils.isNotBlank(string))
等价于:checkerId == null || checkerId.equals("")
2.对象空值判断
if(Obj == null)
3,集合空值判断
CollectionUtils.isEmpty(?)
4.数组空值判断
if(suzu != null && suzu.length() > 0)
5.判断两个字符串是否相等(内容相等)?
String string1 = null;
String string2 = null;
// 判断两个字符串是否相等,此方法可以避免空指针异常
if (ObjectUtils.notEqual(string1, string2)) {
// ObjectUtils -> org.apache.commons.lang.ObjectUtils
// 如果 string1 = null && string1 = null 返回true
// 如果 string1 = null || string1 = null 返回false
}