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

51zwd一起做网站广州做网站和域名

51zwd一起做网站广州,做网站和域名,电子商务网站建设包括哪些内容,厦门网站建设推广哪家好目录 相同 不同 1. 继承的父类不同 2. 线程安全性不同 3. 包含的 contains 方法不同 4. toString方法不同 5. 是否允许null值不同 6. 计算hash值的方式不同 7. 计算索引位置的方法不同 8. 初始化容量不同 9. 扩容方式不同 10. 内部存储策略不同#xff08;此处讨论…目录 相同 不同 1. 继承的父类不同 2. 线程安全性不同 3. 包含的 contains 方法不同 4. toString方法不同 5. 是否允许null值不同 6. 计算hash值的方式不同 7. 计算索引位置的方法不同 8. 初始化容量不同 9. 扩容方式不同 10. 内部存储策略不同此处讨论的是Java 8 11. 支持的遍历种类不同 12. 迭代器不同 相同 HashMap 和 Hashtable 都实现了 Map、Cloneable、Serializable接口 不同 1. 继承的父类不同 HashMap 继承自 AbstractMap 类 Hashtable 继承自 Dictionary 类Dictionary 类是一个已经被废弃的类因此已经几乎没人用Hashtable 了。 2. 线程安全性不同 HashMap 线程不安全。HashMap 中的方法在一般情况下是非 Synchronize 的。使用 HashMap 时就必须要自己增加同步处理 Hashtable 线程安全内部方法大多是 Synchronize 的。在多线程并发的环境下可以直接使用Hashtable不需要自己为它的方法实现同步。 Hashtable 实现线程安全的代价就是效率变低因为会锁住整个 Hashtable而ConcurrentHashMap 做了相关优化因为 ConcurrentHashMap 使用了分段锁并不对整个数据进行锁定效率比 Hashtable 高很多。 3. 包含的 contains 方法不同 HashMap 是没有 contains 方法的只包括 containsValue 和 containsKey 方法 Hashtable则保留了 contains 方法效果同 containsValue还包括 containsValue 和 containsKey方法。 4. toString方法不同 HashMap没有重写toString()方法; Hashtable重写了toString()方法。 5. 是否允许null值不同 HashMap 是允许 key 和 value 为 null 值的用 containsValue 和 containsKey 方法判断是否包含对应键值对 Hashtable 键值对都不能为空会报空指针异常。 6. 计算hash值的方式不同 HashMap 内部专门使用了名为 hash 的方法来对 key 的 hash 值做出进一步处理 (h key.hashCode()) ^ (h 16)将计算出的值作为最终的 hash 值。目的是为了获得一个更加均匀分布的整数以便哈希函数得出的地址更加均匀分布降低冲突概率 Hashtable 则是直接使用 key.hashCode() 作为最终的 hash 值。 static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hashCode()) ^ (h 16); } 7. 计算索引位置的方法不同 HashMap 在求 hash 值对应的位置索引为index (n - 1) hash这样的取模操作只需要做位运算位运算比除法的效率要高很多 Hashtableint index (hash 0x7FFFFFFF) % tab.length0x7FFFFFFF的目的是为了将负的hash 值转化为正值因为 hash 值有可能为负数而 0x7FFFFFFF 后只有符号位改变而后面的位都不变。 8. 初始化容量不同 HashMap 的初始容量为16 Hashtable 初始容量为11 但是两者的负载因子默认都是0.75。 9. 扩容方式不同 HashMap为原容量的2倍而且扩容结果一定是2的幂次数 Hashtable为原容量2倍加1。 10. 内部存储策略不同此处讨论的是Java 8 HashMap满足链表长度大于等于 8并且数组长度大于等于64时链表转变成红黑树当红黑树节点少于6时退化为链表 Hashtable都是以链表方式存储。 11. 支持的遍历种类不同 HashMap 只支持Iterator遍历 Hashtable 支持Iterator和Enumeration两种方式遍历。 12. 迭代器不同 HashMap 的迭代器Iterator是 fail-fast 迭代器 Hashtable 的enumerator迭代器不是fail-fast的。 所以当有其它线程改变了 HashMap 的结构增加或者移除元素将会抛出ConcurrentModificationException但迭代器本身的 remove() 方法移除元素则不会抛出ConcurrentModificationException 异常。但这并不是一个一定发生的行为要看 JVM 。而Hashtable 则不会。 本文参考了下述两篇文章 HashMap和Hashtable的区别(绝对经典)_hashmap hashtable-CSDN博客 HashMap和Hashtable的区别-CSDN博客
http://www.w-s-a.com/news/413155/

相关文章:

  • 建德网站网站建设规划设计书
  • 谷歌网站流量分析wordpress置顶浮标
  • 江苏新宁建设集团网站网络规划设计师2023论文
  • 合作建站协议python wordpress采集器
  • 集团网站网页模板网站建设图片大全
  • 举报非法网站要求做笔录wordpress怎么插视频
  • 网站服务器防护如何搭建网站平台
  • 设计师接私活的网站如何做网站的搜索栏
  • ps做图下载网站网站子目录设计
  • 厦门网站制作策划高中生做网站网页
  • 高端品牌网站建设在哪济南兴田德润优惠吗专业定制网站开发公司
  • 怎么做网站卖东西汽车网站排行榜前十名
  • 网站关键字没有排名只有单页面的网站怎么做seo
  • 网站流量盈利模式宝塔没有域名直接做网站怎么弄
  • 淡蓝色网站qq推广中心
  • 设计网站价格餐饮吸引客流的活动方案
  • 手机网站建设电话百度搜索量
  • 条件查询 php网站源码中国白云手机网站建设
  • 网上注册公司流程及材料班级优化大师免费下载电脑版
  • 应用网站如何做营销型网站的重要特点
  • 怎么样百度搜到自己的网站加强社区网站建设
  • 建设网站所需技术wordpress延时加载js
  • 网站建设沈阳搜云seo
  • 怎么申请免费的网站空间微信公众平台注册收费吗
  • 东营网站搭建最基本的网站设计
  • 网站建设技术的发展最近的国际新闻大事
  • 德州有名的网站建设公司网站如何做引流
  • 建设一个收入支出持平的网站网络推广计划书格式
  • 什么是网站黑链全球新冠疫苗接种率
  • 网站开发 chrome gimp网站不备案做seo没用