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

建设网站需要收费吗云南网络推广

建设网站需要收费吗,云南网络推广,网络规划设计师考试内容有哪些,网站开发的方法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/87159/

相关文章:

  • 外网平面设计网站怎么做自动跳转网站
  • 选做旅游网站的课题分析网站建设的公司名称
  • 建材网站做环保类型思路开发一个网站一般需要多少钱
  • 佛山新网站建设市场电子商务网站管理系统完美版
  • 珠宝网站官网建设需求wordpress无法连接到ftp服务器
  • 在线流程图制作温州百度seo排名
  • 商盈网站建设关于网站建设的技巧
  • 公司网站注销网上怎么做广告
  • 什么网站可以做h5如何免费发布广告
  • 抚州市建设局网站查询上海网站关键排名
  • 建站行业解决方案电子商务平台如何搭建
  • 那家公司做网站好用上海注册的公司建的网站
  • 长春网站运做思路个人域名备案风险
  • 网站搭建源码优势网网站
  • 常德住房和城乡建设局网站网络游戏营销策略
  • 车陂手机网站开发怎么做推广网站
  • 深圳哪里有做网站的flash网站制作
  • 杭州做网站的优质公司哪家好做网站首选九零后网络
  • 景德镇建设企业网站建立公司网站的目的
  • 技术支持 湖北网站建设天津建站管理系统信息
  • 大学电子商务网站建设竞价如何屏蔽恶意点击
  • 龙岩公司网站建设域名购买成功后如何使用
  • 秦皇岛网站建设网站搭建配置
  • 成都生物城建设有限公司网站软件工程师级别
  • 自媒体专用网站免费上海建设工程网站
  • jquery做的装修网站高级私人定制制衣店
  • 校园网站开发的目的用腾讯云做淘宝客网站视频
  • 昆山设计网站的公司页面设计英文
  • 杭州网站推广营销阿里云oss建站 直接上传wordpress
  • 网站建设运营属于经营范围页面设计按钮