Java HashMap、HashTable与ConCurrentHashMap
2024-09-05 09:26:52
一、Java中数据存储方式最底层的两种结构
1、数组:存储空间连续,寻址迅速,增删较慢。(代表:ArrayList)
2、链表:存储空间不连续,寻址慢,增删较快。(代表:LinkedList)
二、哈希表:较快(常量级)的查询速度,及相对较快的增删速度,所以很适合在海量数据的环境中使用。
1、哈希表是由数组+链表组成的(链表的数组,数组中存的是链表的头结点)
三、HashMap与HashTable的区别(相同存储机制)
1、HashMap是非线程安全的,HashTable是线程安全的。
2、HashMap的键和值都允许有null值存在,而HashTable则不行。
3、因为线程安全的问题,HashMap效率比HashTable的要高。
四、ConCurrentHashMap是HashMap的线程安全的实现,与传统HashTable相比,性能更好。
1、HashTable使用synchronized关键字锁住对象整体
2、ConCurrentHashMap基于lock操作的,这样的目的是保证同步的时候,锁住的不是整个对象。
最新文章
- 解决eclipse中自带的maven搜索不到非本地第三方包问题
- Chrome的ERR_UNSAFE_PORT解决办法
- csu 1812: 三角形和矩形 凸包
- 《细细品味Hive》系列课程
- java 计算地球上两点间距离
- JSP指令
- json操作json类型转换
- POJ 1236 Network of Schools (有向图的强连通分量)
- Codeforces 626A Robot Sequence
- 传统的log4j实战
- Nutch+Lucene搜索引擎开发实践
- SpringMVC 3.2集成Spring Security 3.2
- vue+vux+axios+vuex+vue-router的项目的理解
- 手把手教你用npm发布一个包,详细教程
- jquery获取焦点和失去焦点事件代码
- Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 构建监控平台
- python之地基(一)
- c# 获取端口的连接数,网站的连接数
- Linux kprobe调试技术使用
- Kafka技术内幕 读书笔记之(五) 协调者——消费组状态机