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

青岛建站公司推荐广州今日新闻最新消息

青岛建站公司推荐,广州今日新闻最新消息,上海企业信息查询,wordpress怎么发长文章远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 Hashmap和hashtable存储…

远离八股文,面试大白话,通俗且易懂

看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。

java面试题汇总-目录-持续更新中

Hashmap和hashtable存储逻辑基本相同-都是基于hash表实现的。

原理就是都在内部维护了一个数组,这个数组的每个元素就是一个Bucket(桶)。也就是我们通过put方法存储数据的时候,会根据key对应的hashcode返回一个整数索引,索引对应的位置的bucket就是数据存储在数组中的位置。

但是hashcode返回的索引是有限的,所以,不同的key可能得到的索引是相同的,就代表一个bucket里面可能存了不同的key。这就引入了链表。也就是这个数组里面的每个bucket都是一个链表。(数组里面存链表,链表里面存数据)

比如:第一个值进来后,根据key返回的索引是1,那么这个值就存储在下标为1的这个bucket中,紧接着又进来一个key,解析后返回的索引还是1,这时候就会判断下标为1的bucket中是否存在当前这个key,如果存在就替换,如果不存在就在链表的最后追加上这个值。  

如果我们想要获取数据的时候也一样的逻辑,先根据key找到索引,进而找到bucket,因为bucket里面可能存在多个key,就循环看下key是不是存在,如果存在就返回对应的值。

hashmap内部方法没有加锁,所以是线程不安全的,只适用于单线程的环境,但是性能较快。正常情况下都是可以使用

hashtable内部方法都加有synchronized  所以线程安全,但是性能也比较低下。

更推荐使用ConcurrentHashMap来代替hashtable。

因为ConcurrentHashMap引入了分段锁的概念。

就相当于将整个hash表分成多个独立的小型hash表(分段),也就是你操作A段上的数据,只对A段上加锁,不影响BCD等其他分段上面的读写操作。更适用于高并发的场景。

可以对比下hashtable,他如果写数据的时候,会将整个hash表全都加锁,那么其他线程只能等待他写完后才能再进行读写。而ConcurrentHashMap 就很大程度上避免了这种情况。

http://www.mmbaike.com/news/104645.html

相关文章:

  • 手机网站前端写法网站seo是什么
  • 长沙雨花区建设局网站高效统筹疫情防控和经济社会发展
  • 培训网站建设情况24小时自助下单平台网站便宜
  • 公司网站免费网站免费关键词百度指数查询
  • 做网站的详细步骤百度品牌广告收费标准
  • 十大免费ppt网站下载网站优化包括
  • 网站秒杀怎么做网页模板
  • 给企业做网站赚钱吗平台交易网
  • 房子竣工验收在哪个网站查谷歌seo课程
  • 任丘做网站价格苏州seo关键词排名
  • 大众服务器网站网站怎么做的
  • 30岁学编程太晚了优化合作平台
  • 钢格板保定网站建设谷歌seo详细教学
  • 广西建设厅网站专家申请表seo查询官网
  • 郑州网站设计的公司程序员培训班要多少钱
  • 学校网站模板 dedecms登录百度账号
  • 长沙做网站建设的青岛网站建设维护
  • 做网站备案照片的要求营销推广的工具有哪些
  • 做网站要用什么软件链接生成器
  • wordpress 评论倒叙爱站网seo工具
  • 晋江模板建站百度店铺
  • 会ps的如何做网站域名解析
  • 假怀孕单子在线制作图片江门网站优化公司
  • 什么是网站风格百度地图排名怎么优化
  • 做蛋糕网站策划书营销方式和营销策略
  • 池州专业网站建设网站seo排名培训
  • 海报素材库网站免费酒店营销策划与运营
  • 做swf网站国内新闻大事20条
  • 广州活动网站设计seo站长平台
  • 有源代码如何做网站免费网站建设哪个好