空指针异常及常见类型的空值判断

空指针异常就是我们在对空对象进行的任何操作都会报空指针异常。
空指针的解决办法:
重点关注报错发生的所在行,同时为了避免空指针的发生,最好在做判断处理时将“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
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值