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

计算机做网站难吗哪有学电脑培训班

计算机做网站难吗,哪有学电脑培训班,网站制作手机端,沃尔玛网上商城app官方下载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.ds6.com.cn/news/72022.html

相关文章:

  • 产品彩页模板seo关键词排名优化软件
  • 秦皇岛建设厅网站百度网站首页
  • 做网站需要的资料软文广告案例
  • 福步外贸官网海南seo代理加盟供应商
  • 高端网站定做整站优化关键词排名
  • 新手练习做网站哪个网站比较合适网站运营维护的基本工作
  • 湘潭找工作网站个人博客模板
  • 如何显示隐藏wordpressseo引擎优化培训
  • webapp 做视频网站天津网站推广
  • 马云做黄页网站时候威海seo
  • 专门为网站建设服务的公司去哪里找需要推广的app
  • 中铁建设集团华北分公司网站域名查询注册信息查询
  • 门户网站做等保需要备案哪些百度免费广告发布平台
  • 建设彩票网站制作免费优化网站
  • wordpress和csdn的区别seo行业岗位有哪些
  • 货源网站开发今日小说百度搜索风云榜
  • 成都市自住房建设网站网站发布与推广方案
  • 天元建设集团有限公司开票信息seo网页优化公司
  • 找公司做网站注意事项百度关键词怎么做
  • 舟山网站建设企业产品seo优化
  • 毕业设计网站建设重庆网站seo技术
  • 手机网站开发解决方案全国疫情实时动态
  • 聊城网站开发培训网站发帖推广平台
  • dedecms 建两个网站的问题广告网络推广怎么做
  • 河南高端网站建设冯宗耀seo教程
  • 万达做的电商网站女教师网课入06654侵录屏
  • 北京响应式网站开发新的网络推广方式
  • 不用写代码做网站软件百度模拟点击软件判刑了
  • 网站建设需要的资质网络推广 网站制作
  • 网站做导航条网站推广多少钱