189 8069 5689

java空指针异常是什么

这篇文章主要介绍“java空指针异常是什么”,在日常操作中,相信很多人在java空指针异常是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java空指针异常是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联 - 成都服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,成都服务器托管,西南服务器托管,四川/成都大带宽,成都机柜租用,四川老牌IDC服务商

        1:什么是空指针异常?

java空指针异常是什么

  • 调用 null 对象的实例方法。

  • 访问或修改 null 对象的字段。

  • 将 null 作为一个数组,获得其长度。

  • 将 null 作为一个数组,访问或修改其时间片。

  • 将 null 作为 Throwable 值抛出。

        2:怎么产生的?

        1)返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生 NPE。反例:public int f() { return Integer 对象}, 如果为 null,自动解箱抛 NPE。 

        2) 数据库的查询结果可能为 null。

        3) 集合里的元素即使 isNotEmpty,取出的数据元素也可能为 null。

        4) 远程调用返回对象时,一律要求进行空指针判断,防止 NPE。

        5) 对于 Session 中获取的数据,建议 NPE 检查,避免空指针。

        6) 级联调用 obj.getA().getB().getC();一连串调用,易产生 NPE。正例:使用 JDK8 的 Optional 类来防止 NPE 问题。

        3:如何防止

        ①对象防止,直接!=null

        ②集合类判空:一般采用!=null&&判断size(),或者调用isEmpty()方法,或者用Collection工具类判空,java8种Optional类

        ③字符串判空:需要判断是否==null&&"".equals(str)来判断,或者StringUtils工具类判断

         另外项目中要对所有前台参数,对象判空,数据库查询语句判空,JSON对象,JSON数组判空,get()后的值判空

        4:Optional类      

        JDK8中的Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测

Optional opt = Optional.empty();Optional opt = Optional.of(new Object());Optional opt = Optional.ofNullable(null); if(opt.isPresent()){      System.out.println(opt.get());   }else{      System.out.println("没有数据");   } 

到此,关于“java空指针异常是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享题目:java空指针异常是什么
文章来源:http://cdxtjz.cn/article/gghjij.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。