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

网站建设员工资兴义网站建设网站建设

网站建设员工资,兴义网站建设网站建设,wordpress模板目录,网站建设收费标准公司1、典型回答 浅层次的来回答这个问题的答案是,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.yayakq.cn/news/747654/

相关文章:

  • 网站项目下载个人服务器网站备案
  • wordpress登录页面成都百度推广优化
  • 电商网站开发 思维导图怎么给一个网站做seo
  • 提供网站建设找哪家公司好如何最便宜建设一个网站
  • 个人网站备案备注怎么写天津建站模板搭建
  • 重庆业务外包网站建设wordpress中文章标题
  • 微信小程序网站开发科技网络有限公司
  • 棠下网站建设七种人不宜学软件工程
  • 南京学网站建设21年网站搭建公司排行榜
  • 沧州高端网站建设软件开发申请专利流程
  • 惠州企业自助建站排版的网站
  • 做内衣的网站好建站流程新手搭建网站第一步
  • 建一个淘宝客网站需要多少钱帝国cms做漫画网站教程
  • 出口电商网站建设程序南平建设企业网站
  • 如何建立论坛网站推广文章的推广渠道
  • 肇庆住房建设部网站中企动力做网站好吗
  • 武清做网站的公司可以中英切换的网站怎么做
  • 辽宁网站网站建设聊城网站建设动态
  • 攻击Wordpress网站多肉建设网站的目的及功能定位
  • 企业网站及公众号建设方案苏州风光ix5
  • 设计网站页面要怎么切图免费制作企业小程序
  • 有哪些可以做兼职的网站手机网站怎么做域名解析
  • 网站建设管理与维护ppt重庆seo搜索引擎优化优与略
  • 台州椒江区建设局网站文化传播公司网站模板
  • 访问网站速度慢上海广告公司排行榜
  • 做网站用什么软件编辑做投标需要知道什么网站
  • 高端h5网站开发笔记本彩页设计
  • 电子商务网站建设与管理课后第四章教你如何建立网站
  • 现在做什么网站好网站收缩广告
  • 机场建设相关网站28商机网创业项目