Article

post_img

进程和线程的区别

摘要

程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、 …

post_img

HashMap在1.7的死循环问题

摘要

在jdk1.7的hashmap中在数组进行扩容的时候,因为链表是头插法,在进行数据迁移的过程中,有可能导致死循环 比如说,现在有两 …

post_img

HashMap的寻址算法

摘要

计算对象的 hashCode() 再进行调用 hash() 方法进行二次哈希, hashcode值右移16位再异或运算,让哈希分布 …

post_img

HashMap的扩容机制

摘要

在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值( …

post_img

HashMap的put方法执行流程

摘要

判断键值对数组table是否为空或为null,否则执行resize()进行扩容(初始化) 根据键值key计算hash值得到数组索引 …

post_img

HashMap的底层原理

摘要

底层使用hash表数据结构,即数组+(链表 | 红黑树) 添加数据时,计算key的值确定元素在数组中的下标 key相同则替换 不同 …

post_img

二叉树和散列表

摘要

二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点 …

post_img

ArrayList和LinkedList的区别

摘要

底层的数据结构 ArrayList 是动态数组的数据结构实现 LinkedList 是双向链表的数据结构实现 操作数据效率 Arr …

post_img

ArrayList的底层原理

摘要

底层数据结构 ArrayList底层是用动态的数组实现的 初始数据容量 ArrayList的初始容量为0,当它第一次添加数据的时候 …