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

计算机做网站难吗最新新闻热点事件

计算机做网站难吗,最新新闻热点事件,西安网评,更新不了wordpress1、典型回答 浅层次的来回答这个问题的答案是,JDK 源码不支持 Hashtable 插入 value 值为 null,如以下 JDK 源码所示: 也就是 JDK 源码规定了,如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常。 并且看上面的 JDK …

1、典型回答

浅层次的来回答这个问题的答案是,JDK 源码不支持 Hashtable 插入 value 值为 null,如以下 JDK 源码所示:

也就是 JDK 源码规定了,如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常。

并且看上面的 JDK 源码可以得出结论,如果 key 也为 null 的时候,因为 null 没有 hashCode 所以它也会报空指针异常,如下图所示:

2、考点分析

简单来说,Hashtable 之所以 key 不允许为 null,和 value 不允许为 nul 的原因是,JDK 源码级别做了限制,如果 Hashtable 的 key 或者 value 为 null 就会报空指针异常。

3、知识扩展

但是,我们看 JDK 源码不难发现,这些判断和错误 Hashtable 完全可以在后续的 JDK 版本中修复和调整代码,可以让其支持 key 和 value 都为 nul,为什么它没有修复这个问题呢?

深层次的原因就是,设计的 Hashtable 是在多线程下使用的,而如果 Hashtable 的 key 或 value 允许为 null 的话,那么程序就会存在二义性问题。

什么是二义性问题?

所谓的二义性问题是指含义不清或不明确。

如果我们假设 Hashtable 允许插入 null,那么此时它就会有二义性问题,这个 nu! 值就有两层含义

  1. 这个 key 不存在,所以返回 null。
  2. key 存在,并且值本身就为 nul,所以返回的就是 null。

而在多线程下,你没有办法证明真伪,因为你在判断证明的时候,其他线程可能同时做了修改,所以不能被证明的二义性问题需要从源头上杜绝,所以多线程下的 Hashtable 是不允许 key 和 value 插入 nu 值的。

ConcurrentHashMap 也是不允许插入 null,原因和 Hashtable 是一样的(因为有二义性问题)

为什么 HashMap 允许插入 null 值?

因为 HashMap 设计是在单线程下使用的,而单线程可以证明真伪,它在进行查询判断的时候,不用担心有其他线程对这个值同时做修改,所以它不存在二义性问题,所以 HashMap 允许 key 和 value 都为 null。

http://www.ds6.com.cn/news/48251.html

相关文章:

  • c#购物网站开发流程哪个平台可以免费推广
  • 公司网站公司新闻潍坊今日头条新闻
  • 网站锚文本的内链建设上海推广外包
  • 成都房地产网站开发品牌营销推广要怎么做
  • 做推广网站的文章学校网站建设哪家好
  • 响应式网站建设服务器长尾关键词挖掘精灵官网
  • 免费网站生成无锡百度推广代理商
  • 个人响应式网站软文如何推广
  • 模板网站哪家靠谱安徽seo人员
  • discuz 网站风格3小时百度收录新站方法
  • 成都网站优化排名推广湖北网站设计
  • 电子商务网站开发系统郑州seo方案
  • 常用网站开发技术项目网站
  • 对做网站有什么建议东莞网站制作公司联系方式
  • 一个电商网站开发要多久交换免费连接
  • 深圳营销网站建设品牌设计公司
  • 怎么原创视频网站网站seo重庆
  • 做一个京东网站怎么做的搜索引擎网站优化和推广方案
  • 做kegg网站百度指数名词解释
  • it培训机构招生怎么优化一个网站关键词
  • 东莞做网站需要避免这些因素免费注册网页网址
  • 在线推广是网站推广的首要工具潍坊今日头条新闻最新
  • 成都网页设计美工培训搜索引擎营销优化策略有哪些
  • 慈溪市建设局网站请简述网络营销的特点
  • 做教案找资料有哪些网站深圳优化怎么做搜索
  • 成功案例网站建设电商运营一天都干啥
  • 上海装修公司网站建设网站流量分析工具
  • 谷歌英文网站推广seo教程百度网盘
  • 网络服务商是指东莞百度seo排名
  • 宁波网站建设阿里指数在线查询