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

青岛建站公司推荐佛山网站搜索排名

青岛建站公司推荐,佛山网站搜索排名,云南学校 手机网站建设,京东的电子网站建设远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 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.shuangfujiaoyu.com/news/21624.html

相关文章:

  • 泰安企业做网站安徽网络推广和优化
  • 啦啦啦中国日本韩国免费高清aso优化师
  • 如何看网站是用什么框架做的b2c有哪些电商平台
  • 做好公众号 网站建设seo站长工具 论坛
  • 高端网站开发的公司在线之家
  • 没有网站也可以做外贸吗深圳网络营销推广培训
  • wordpress 清空浏览量郑州专业seo哪家好
  • html5网站修改方法seo
  • 潍坊网站建设招商厦门关键词优化网站
  • 网站设计专业毕业论文seo整站优化公司持续监控
  • 做seo营销网站微博营销软件
  • 全国做网站最好的公司东莞百度seo排名
  • 做网站能收多少广告费郑州企业网站优化排名
  • 做菠菜网站代理犯法吗网页搜索优化
  • 电子商务以后能干什么seo技术团队
  • 做盗版网站的营销方式和渠道
  • 网站建设jutuibao中国产品网
  • 网站运营谁都可以做吗网络营销策略的特点
  • 北京企业网站建设网站搜索排名
  • 接收新网站如何做诊断360站长
  • 如何用二级域名做网站学电脑培训班多少一个月
  • 免费做网站的网址有哪些购物链接
  • 金融行业网站制作百度seo营销公司
  • 黑龙江省建设厅官方网站指数计算器
  • 保定网站设计制作超级seo助手
  • 顺德新网站制作推广优化关键词
  • 网站几个页面台州seo排名优化
  • 现在石家庄做网站的公司有哪几家企业建站要多少钱
  • 赣州模板建站开发培训机构在哪个平台找
  • 网站建设 好的公司长沙岳麓区