当前位置: 首页 > news >正文

网站正在建设中 页面上海网站设计公司

网站正在建设中 页面,上海网站设计公司,设计软件推荐,门户网站制作定做参考链接: java中什么是空指针异常以及为什么会产生空指针异常天上的云川的博客-CSDN博客什么是java空指针 java中容易产生空指针异常:NullPointerException的场景火龙映天的博客-CSDN博客java怎么制造空指针异常 java空指针异常是什么、怎么发生、如何…

参考链接:

  • java中什么是空指针异常以及为什么会产生空指针异常天上的云川的博客-CSDN博客什么是java空指针

  • java中容易产生空指针异常:NullPointerException的场景火龙映天的博客-CSDN博客java怎么制造空指针异常

  • java空指针异常是什么、怎么发生、如何处理僵尸道长毛小方的博客-CSDN博客空指针异常是什么

1. 名词解释

指针:指针中存放的是内存地址。

空:null

空指针:指针不指向任何内存地址(没有初始化分配内存,获得引用)

空指针异常:一个指针不指向任何内存地址,但仍被调用了。

打开 NullPointerException源码,开头就写明出现NullPointerException的原因:

  • Invoking a method from a null object:调用空对象的方法

    • obj.method() // obj对象不存在

  • Accessing or modifying a null object’s field:获取或修改空对象的字段

    • obj.setName("cjn") // obj对象不存在

  • Taking the length of null, as if it were an array:获取一个空数组的长度

    • array.length // array为null

  • Accessing or modifying the slots of null object, as if it were an array:获取或者修改空集合的一个位置上的内容

    • arr[100]=100; // array为null

  • Throwing null, as if it were a Throwable value:将null视为Throwable值

  • When you try to synchronize over a null object:当你尝试同步一个空对象

2. 代码测试

测试代码如下:

 package exception;​import cn.hutool.core.collection.CollUtil;import cn.hutool.core.util.StrUtil;import compare.User;​import java.util.Hashtable;import java.util.List;​/*** @ClassName NullPointerExceptionTest* @Description 产生空指针异常的原因:在null对象上调用方法或者获取属性* @Author Jiangnan Cui* @Date 2023/2/13 21:05* @Version 1.0*/public class NullPointerExceptionTest {public static void main(String[] args) {stringNullPointerException();collectionNullPointerException();packageClassNullPointerException();  }​/*** 测试字符串产生的空指针异常*/public static void stringNullPointerException(){System.out.println("测试字符串产生的空指针异常");String str = null;// 1. 字符串内容为null,调用字符串相关方法时会产生空指针异常//        if(!str.isEmpty()){//            System.out.println("str = " + str);//        }// 优化:先判断不为null,满足后再调用其所属方法if(str != null && !str.isEmpty()){System.out.println("str = " + str);}​// 2. 字符串内容为null,进行字符串内容比较时会产生空指针异常//        if(str.equals("test")){//            System.out.println("str = " + str);//        }// 优化:// a. 将不为null的字符串内容放在前方if("test".equals(str)){System.out.println("str = " + str);}// 2. 使用StrUtil.equals()方法比较,此时str放在前后均可以// str放在前面if(StrUtil.equals(str, "test")){System.out.println("str = " + str);}// str放在后面if(StrUtil.equals("test", str)){System.out.println("str = " + str);}}​/*** 测试包装类自动拆箱时产生的空指针异常*/public static void packageClassNullPointerException(){Integer integer = null;//        int number = integer;//        System.out.println("number = " + number);// 优化:先判空,再赋值int number = 0;if(integer != null){number = integer;}System.out.println("number = " + number);}​/*** 测试集合调用时产生的空指针异常*/public static void collectionNullPointerException(){// 1. 集合为空时,调用集合相关方法会产生空指针异常List<String> list = null;//        if(list.isEmpty()){//            System.out.println("我是空!");//        }// 优化:// a. 先判断是否是null,不为null时在判空if(list != null && list.isEmpty()){System.out.println("我是空!");}// 集合不为null时,也可以通过.size()方法判断集合是否为空if(list != null && list.size() > 0){System.out.println("我是空!");}// b. 使用工具类判断集合是否为空if(CollUtil.isEmpty(list)){System.out.println("我是空!");}​// 2. 向集合中添加元素产生空指针异常String key = null;String value = null;Hashtable<String,String> hashtable = new Hashtable<>();//        hashtable.put(key,value);// 优化:if(key != null && value != null){hashtable.put(key, value);}/*** 总结:*     分析:部分集合中不允许设置key或value为null,这类集合主要有:Hashtable、ConcurrentHashMap、ConcurrentSkipListSet、* ConcurrentLinkedDeque、ConcurrentLinkedQueue、LinkedBlockingDeque、LinkedBlockingQueue、ArrayBlockingQueue、* PriorityBlockingQueue等。*/}}

如有错误,欢迎批评指正!

http://www.hrbkazy.com/news/48788.html

相关文章:

  • 宁陵网站建设做公司网站
  • 如何建立公司企业网站百度反馈中心
  • 免费网站java上海公司网站seo
  • 音箱厂家东莞网站建设seo快速排名网站优化
  • wordpress 宝典 pdf黑帽seo之搜索引擎
  • 免费请美女做爰网站爱站小工具
  • 阿里云个人怎么免费做网站百度下载安装到手机
  • 小米手机做网站服务器seo推广的公司
  • 网站技术解决方案不包括岳阳网站设计
  • html5网站制作seo自媒体培训
  • 一级域名网站网站建设方案范文
  • 聊城网站推广软件网络推广需要什么
  • 杭州公司网站建设套餐专业做app软件开发公司
  • 做早餐的网站打开百度首页
  • 哈尔滨营销网站建设公司无锡网络推广平台
  • seo综合查询 站长工具电商怎么做?如何从零开始学做电商赚钱
  • 软件库网站源码seo技术培训东莞
  • 项目网站设计网络营销的工作内容包括哪些
  • 东阿网站建设软文推送
  • 自己有网站怎么做app网站交易
  • 做善事的网站重庆网站排名公司
  • 卖信息的网站企业网站营销优缺点
  • 网站域名的管理密码如何索取湖南 seo
  • 做网站学h5还是php免费推广
  • h5 政府网站百度快照首页
  • html网站模板怎么用友情链接买卖代理
  • 广告营销文案seo排名优化软件有用吗
  • 网站搭建框架是什么网店网络推广方案
  • 百度网站收录提交入口全攻略百度推广登录入口官网网址
  • 广汉网站建设seo网站优化培训怎么样