1. 前言

最近有好几个初学java的小伙伴,甚至是学习到JavaWeb、框架阶段的小伙伴,跑来问健哥,该如何解决Java中的NullPointerException空指针异常。

因为NPE是初学者常见的典型异常,所以健哥在这里专门写一篇文章,来手把手地教大家分析解决这个经典异常问题。

2. 异常现象

首先我们来看看这个既简单,又经常出现的空指针异常NullPointerException,下面这段代码运行后就会抛出NPE空指针异常。

package test;/*** @author 千锋健哥*/
public class TestNullPoint {public static void main(String[] args) {String str = "千锋健哥";boolean flag = str.equals("千锋健哥");System.out.println("===equals对比结果====" + flag);str = null;flag = str.equals("千锋健哥");System.out.println("===equals对比结果====" + flag);}
}

运行结果:

3. 异常原因

那么上述代码为什么会产生NPE问题呢?下面健哥就来给各位小伙伴解释一下产生该异常的原因。

String str = "千锋健哥"; 字符串中此时的值为”千锋健哥“;

boolean flag = str.equals("千锋健哥");

调用str字符串的equals方法进行字符串比较,此时str变量有具体的值,值为”千锋健哥“,所以可以正常调用;str = null;

给str字符串设置为空值null,我们知道null没有任何方法可以调用;

所以代码当运行到 flag = str.equals("千锋健哥");这行代码的时候,就会抛出空指针异常,因为此时str变量的值是null。

4. 解决办法

既然我们现在找到了问题原因,那么我们很容易就能解决该问题了,解决思路如下:

当程序一旦抛出NullPointerException异常,肯定是因为某个变量的值为null,而你又引用了这个变量,null空值是没有任何方法可以调用的,所以抛出了这个异常;

明确原因之后,接着就要定位产生异常的位置,比如我们从上面的运行截图中,可以看到异常所在的代码行数为TestNullPoint类的第14行,报错如下:

也就是说在第14行代码中,有值为null的变量调用了方法,我们只需要找到那个变量将它的值改为非空即可。

修改后的代码如下:

5. 总结

NullPointerException空指针异常是因为有变量的值为空null,然后我们在代码中又调用了这个变量的方法而导致的。我们只需要找到这个变量,然后将这个变量的值改为非空即可解决NPE异常。

现在你知道NPE是怎么产生以及怎么解决的了吗?如果你还有什么问题,可以在评论区留言哦!

初学Java常见异常:NPE空指针异常怎么解决?相关推荐

  1. 23、Java——常见异常的原因和解决办法

    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进.

  2. Java常见异常类型及原因分析

    Java常见异常类型及原因分析 0x1 NullPointerException异常 顾名思义,NullPointerException 是空指针异常.但是在 Java 中没有指针,怎么会有 空指针异 ...

  3. JAVA常见异常信息(保存)

    一. java基础编程中常见的错误(基本类型) 包装类型参与运算时,要做null值校验,否则可能出现空指针异常. 包装类型比较大小,不能使用compare(i,j)直接比较,因为该方法是用来比较基本类 ...

  4. Java常见异常种类及产生原因

    Java常见异常种类及产生原因 JAVA异常共分为下列几种 Error JAVA环境编译错误 Runtime Exception 运行处异常 Exception 标准Java库方法异常 throw 用 ...

  5. 初学Python常见异常错误,总有一处你会遇到!

    初学Python常见异常错误,总有一处你会遇到! 参考文章: (1)初学Python常见异常错误,总有一处你会遇到! (2)https://www.cnblogs.com/xxpythonxx/p/1 ...

  6. Java 常见异常种类

    Java 常见异常种类 参考文章: (1)Java 常见异常种类 (2)https://www.cnblogs.com/cvst/p/5822373.html 备忘一下.

  7. java基础之----java常见异常及代码示例

    java基础之----java常见异常及代码示例 参考文章: (1)java基础之----java常见异常及代码示例 (2)https://www.cnblogs.com/gunduzi/p/1203 ...

  8. java常见异常说明汇总

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  9. java常见异常思维导图_21_异常_第21天(异常、企业面试题,思维导图下载)

    今日内容介绍 1.异常概述和继承体系 2.异常原因以及处理方式 3.运行时期异常 4.方法重写的异常处理 5.Throwable类常见方法 6.自定义异常 01异常的概述 * A: 异常的概述 * a ...

最新文章

  1. 公开平等的企业文化是OKR落地第一步
  2. IJCV2021 人脸关键点检测器PIPNet
  3. 学英语不必太在意单词
  4. Opencv4.5-C++ 摄像头画面镜像显示及文件保存
  5. Android 自动化测试——Monkey测试
  6. 机器学习经典算法笔记——梯度下降算法
  7. React Redux: 从文档看源码 - Components篇
  8. 服务器系统多用户怎么解决,服务器如何设置多用户登录
  9. vb改变字形的代码是什么_求VB中调整字体颜色代码
  10. Android原生人脸识别Camera2示例
  11. Linux安装JDK并配置环境变量
  12. rpm的mysql怎么安装_MySQL的rpm安装教程
  13. 传统零售业务分析指标整理
  14. 30天突破英语口语!(MP3版)
  15. shell中的括号(小括号,中括号,大括号)
  16. Sorry ,中产 -20160929
  17. java连续多位相同字符判断的正则表达式_java连续多位相同字符判断的正则表达式...
  18. 广州.NET微软技术俱乐部 - 动手实验室
  19. 数据表示,源码、反码、补码、一码
  20. Linux安装Maven、POM及配置文件详解

热门文章

  1. 产品经理遇到瓶颈,如何突破?硅谷产品教父Marty Cagan 告诉你
  2. 画皮SAP-世界管理软件公司的中国真相
  3. 2-appium之adb介绍
  4. 快乐地谈谈:关于RSA算法中求私钥d的欧几里得方法(辗转相除法)考试向的欸
  5. 2022.11.7-复制粘贴代码带来的问题
  6. 【每日一练】19—CSS 实现撕纸的效果
  7. 循环经济下的商业模式
  8. MAVEN下载安装与配置Win10最新最详细
  9. 天津大学计算机学院院长及副院长,于瑞国
  10. 计算机桌面蓝字,电脑桌面上的图标都变成蓝色的了怎么办? – 手机爱问