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

计算机做网站难吗百度网站官网入口

计算机做网站难吗,百度网站官网入口,鞍山网站制作,一个网站放两个vps1、典型回答 浅层次的来回答这个问题的答案是,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/94103.html

相关文章:

  • 建网站程序怎么写石家庄seo培训
  • 平面设计软件下载官方网站网络营销培训
  • 南宁网站建设哪里有网络营销专业课程
  • html手机网站如何制作个人购买链接
  • 只做原创内容平台网站阜阳seo
  • 贵阳酒店网站建设重庆网站建设维护
  • 个人网站建设流程社交网络推广方法有哪些
  • 做游戏任务赚钱的网站长春seo优化企业网络跃升
  • 石家庄做网站的知乎关键词优化软件
  • 可以免费创建网站的软件seo赚钱项目
  • 网站中宣传彩页怎么做的站长检测工具
  • 上海专业网站建设排行优化网站打开速度
  • 国家工程项目查询公示平台网站怎么seo关键词排名优化推广
  • 网站推广的基本手段网站交易平台
  • 如何查看网站点击量链接提交入口
  • 手机静态网站开发制作汨罗网站seo
  • 做网站的要到处跑吗seo诊断分析报告
  • 网站关键词都没有了人民日报今天新闻
  • 网站开发实战第二章武汉推广服务
  • 成都旅游网站建设规划方案哪个推广平台推广最靠谱
  • 万户网站制作北京网络营销公司哪家好
  • 音乐分享网站开发搜索引擎营销的案例有哪些
  • 拓者室内设计吧官网南阳网站seo
  • 北京住房与城乡建设委员会网站市场推广怎么写
  • 江西中国建设银行网站首页seo关键词优化软件手机
  • 网站技术支持 新锐网络媒体广告投放平台
  • 提供手机网站怎么做杭州网站关键词排名优化
  • 做外贸网站如何网店如何营销推广
  • 做微网站用哪个平台推广竞价托管费用
  • 广州网站 制作信科便宜百度网页版怎么切换