1.NullPointerException异常出现的原因?
空指针就是空引用,java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。
报空指针异常的原因有以下几种:
1字符串变量未初始化;
2接口类型的对象没有用具体的类初始化,比如:
List it;会报错
List it = new ArrayList();则不会报错了
3当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&rb!="") 或者if("").equals(rb))
2.空指针的解决办法?
重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于 设定的值之前。
常见空指针异常的简要分析:
(1)空指针错误
Java中的8种基本数据类型,变量的值可以有其默认值,加入没有对其正常赋值,java虚拟机是不能 正确编译通过的,因此使用基本的Java数据类型一般是不会引起空指针异常的。实际开发中,大多数的空指针异常主要与对象的操作相关。
下面列出可能发生空指针异常的几种情况及相应解决方案:
代码段1:
  out.println(request.getParameter(“username”));
  分析:代码段1的功能十分简单,就是输出用户输入"username"的值。
说明:看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。但是,如果某个用户在输入数据时并没有提供表单 域"username" 的值,或通过某种途径绕过表单直接输入时,此request.getParameter(“username”)的值为空(注意不是空字符串,是空对象 null。),out对象的println方法是无法直接对空对象操作的,因此代码段1所在的JSP页面将会抛出 "Java.lang.NullPointerException"异常。而且即使对象可能为空时,也调用Java.lang.Object或 Object对象本身的一些方法如toString(), equal(Object obj)等操作。
代码段2:
  String userName = request.getParameter(“username”);
  If (userName.equals(“root”))
  {…}
  分析:代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。
说明:在代码段2中,如果有用户没有提供表单域"username"的值时,字符串对象userName为null值,不能够将一个null的对象与另一 个对象直接比较,同样,代码段2所在的JSP页面就会抛空指针错误。
一个小技巧:如果要把某个方法的返回值与常量做比较,把常量放在前面,可以避免调用null对象的equals方法。譬如:
If (“root”.equals(userName))
  {…}
即使userName对象返回了null对象,这里也不会有空指针异常,可以照常运转。
代码段3:
  String userName = session.getAttribute(“session.username”).toString();
分析:代码段3的功能是将session中session.username的值取出,并将该值赋给字符串对象userName。
说明:在一般情况下,如果在用户已经进行某个会话,则不会出现什么问题;但是,如果此时应用服务器重新启动,而用户还没有重新登录,(也可能是用户关闭浏 览器,但是仍打开原来的页面。)那么,此时该session的值就会失效,同时导致session中的session.username的值为空。对一个 为 null的对象的直接执行toString()操作,就会导致系统抛出空指针异常。
代码段4:
public static void main(String args[]){
Person p=null;
p.setName(“张三”);
System.out.println(p.getName());
}
分析:声明一个Person对象,并打印出该对象的中的Name名字。
说明:这个时候你的p就出现空指针异常,因为你只是声明了这个Person类型的对象并没有创建对象,所以它的堆里面没有地址引用,切忌你要用对 象掉用方法的时候一定要创建对象。

NullPointerException异常相关推荐

  1. java.lang.NullPointerException异常原因及解决

    java.lang.NullPointerException异常原因是因为创建了一个引用类型的变量却没有指向任何对象而又去通过这个引用类型变量加点的形式去访问非静态的方法及属性. 给出三种情况, 第一 ...

  2. NullPointerException异常的原因及java异常??

    NullPointerException异常的原因及java异常?? 参考文章: (1)NullPointerException异常的原因及java异常?? (2)https://www.cnblog ...

  3. java if (name!=null name!=),java中的NullPointerException异常

    java中的NullPointerException异常 关注:176  答案:3  mip版 解决时间 2021-01-27 20:59 提问者侢遇噹姩揂 2021-01-27 02:10 Logi ...

  4. 使用@PersistenceContext获取EntityManager报NullPointerException异常

    最近在练习集成Struts2,Spring,Jpa(以Hibernate实现),出现无法获取EntityManager的问题:问题出现NullPointerException异常 我的beans.xm ...

  5. NullPointerException异常的原因及java异常

    NullPointerException异常的原因及java异常?? 1.空指针异常 1.1空指针异常原因 2.java异常 2.1异常机制概述 2.2异常处理的流程 2.3异常的结构 2.4Erro ...

  6. 如何修复NullPointerException异常

    java.lang.NullPointerException 是JAVA中最容易出现的异常,也是非常困扰编程新手的问题.本文对空指针异常的发生原因进行说明,并对如何解决空指针异常给出了快捷方法. 什么 ...

  7. 接口中NullPointerException异常的原因及解决方法

    NullPointerException是使用指向内存中空位置的引用(null)时发生的异常 在写接口时候出现 NullPointException,是因为传入的参数为空,当对这个参数判断是否为空时, ...

  8. 对象数组 NullPointerException异常--将图C++ 改为java版

    org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded ...

  9. 出现Caused by: java.lang.NullPointerException异常的解决方法

    发现 拿到老师的项目,项目启动时正常,网页提交数据时出现Caused by: java.lang.NullPointerException 报错, 上一条日志显示 com.mysql.jdbc.exc ...

最新文章

  1. BZOJ 4810 莫队+bitset
  2. EasyExcel快速上手~读取
  3. android从github 下开源库引用问题 (出现ClassNotFoundException)
  4. Innodb之监控Buffer pool Load progress
  5. C++中如何使用大整数__int 128
  6. 麦肯锡用 160 页报告告诉我们:13 年后 8 亿人的饭碗会被机器人抢了
  7. 干货 | 豆子科技首席架构师钟声:Java的纯真年代
  8. MapReduce-实践1
  9. 简单的jq动态修改checkbox的checked值
  10. coolfire文章之三
  11. 学校后台管理系统 php,基于ssm的校园门户网站+后台管理系统
  12. LCM模组的简介与质量管理(连载四)
  13. PHP常用函数总结(一):
  14. linux运行asm文件,linux – 尝试在Ubuntu上的NASM上运行.asm文件时出错
  15. 打开只能在微信客户端打开的链接
  16. 转载】强制删除域控制器
  17. 风寒感冒 风热感冒区别
  18. windows 快捷键关闭屏幕
  19. 零基础学软件测试难吗?小白怎么半年内成为测试工程师
  20. 网络的形成-从原始部落到现代化世界

热门文章

  1. python1 2 100_GitHub - smm113522/Python-100-Days: Python - 100天从新手到大师
  2. 如何进行实时频谱分析仪的二次开发——MATLAB、C++、labview开发环境的部署
  3. Hdu 5445 Food Problem 多重背包
  4. 数字摄影测量特征点提取之SUSAN算子
  5. matlab互相关检测器,自相关函数和互相关函数的利用MATLAB计算和作图
  6. java读取网络图片数据_如何利用java读取网络照片
  7. Linux中cp命令介绍
  8. 电脑播放视频一卡一卡的,一顿一顿的 怎么办
  9. 专访羽顺热能董事长陈群:荣誉就是不懈的努力
  10. 如何用360极速浏览器下载网页视频