java之hashMap

HashMap

    public static void main(String[] args){
        HashMap<String,Object> map = new HashMap<>();
        map.put("zxm","zhangxiaomin");
    }
数组
    连续的存储空间
链表
    非连续的存储空间,查询的时间复杂度O(n)
红黑树
漫谈 分布式

hashMap
hashTable
数据结构是什么?
数据结构紧跟着的应该是算法。
算法分析完成应该是多线程下的数据安全问题。
HashMap 线程安全的吗?
hashMap的数据结构是什么呢?

HashMap设计的初衷

jvm的工作原理是:

内核(kernel)的工作原理:
电脑的工作原理
打开电源 --》 bois ---》 boot 内核 ---》 启动程序(内核的主要工作是进程间的调度)--》操作磁盘。

HDFS

node1
node2
node3

REDIS
备注

HashMap

java1.7

​ 数组 + 链表

​ 初始化数据16 扩容0.75

​ 数据超过16*0.75会扩容

多线程扩容会产生循环链表(不安全)

java1.8

​ 数组 + 链表 + 红黑树

​ 初始化数据16扩容0.75

HashMap的线程不安全主要体现在下面两个方面:
1.在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。
2.在JDK1.8中,在并发执行put操作时会发生数据覆盖的情况。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。