小白速看!带你轻松解决Java的空指针异常

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题

 异常案例

对很多Java初学者来说,在学习的初期是很容易遇到各种异常的,就比如咱们今天要讲的这个空指针异常。所谓“授之以鱼,不如授之以渔”,波哥今天就以一个实际的案例来给大家进行讲解,让你真正明白异常的产生原因,并熟练掌握其解决过程。我们先来看看下面这个代码案例:

public class Test {
    public static void main(String[] args) {
        String str=null;
        if(str.equals("qianfeng")){
            System.out.println("没问题,相等");
         }else {
            System.out.println("有问题,不相等");
         }
    }
 }

如果我们运行上面的代码,就会出现如下异常:

 Exception in thread "main" java.lang.NullPointerException //空指针异常
        at Test.main(Test.java:4)

 异常原因

那么上述异常是怎么产生的呢?又该如何解决?这对初学者来说,可能真的无从下手。

其实这种异常要解决起来并不难,只是很多初学者遇到异常时通常都不会查看异常信息,而是打算直接查看代码来找出原因。当然,在代码很少的情况下,这样做是可以的。但这样会养成一个不良的习惯,也就是会在后续写代码的过程中,经常忽视查看异常信息。如果在代码很多的情况下,还是在代码中直接查找异常,这样做的效率是极低的,而且还可能无法找到异常引发的原因。

实际上,解决异常的正确方式,首先应该是查看控制台的异常信息,比如该案例的控制台中就出现了NullPointerException 这个异常提示,并且控制台还告诉了我们这个异常出现的具体位置:

at Test.main(Test.java:4)

所以只要大家认真的查看了这个异常信息,由这一行异常信息我们就可以确定,在 Test 这个类的第4行出现了空指针异常,那么我们只需要直接去查看第4行代码即可:

if(str.equals("qianfeng"))

也就是说,在执行if条件中的str.equals("qianfeng")时出现了空指针异常,我们只需要仔细观察这一行代码,看看哪个对象为空就可以了。通过仔细的检查,我们发现是str对象为空,忘了给该对象赋值了,所以接下来我们对此做出一点改变,代码如下:

public class Test {
    public static void main(String[] args) {
        String str=null;
        if("qianfeng".equals(str)){
             System.out.println("没问题,相等");
         }else {
             System.out.println("有问题,不相等");
         }
    }
 }

另外大家要注意,我们使用equals()方法时,要遵循“常量在前变量在后”的原则,否则就很容易出现空指针异常。

 小结

通过以上这个案例我们会发现,在学习的过程中,遇到问题不可怕,最重要的是要形成自己的一套分析解决问题的思路!另外基础知识薄弱的童鞋,也可以在网上查阅资料来巩固学习,比如在千锋教育的官网上就能找到很多免费的Java学习资料。当然你也可以在B站上搜索千锋Java,也可以找到很多免费的Java学习视频。

最后如果你还有其他问题,就在评论区给我留言吧,波哥看到了会及时给你解答。关注Java架构栈,干货天天都不断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值