容器
申老皮
这个作者很懒,什么都没留下…
展开
-
HashMap源码解析
HashMap java.util包下面的工具类,键值对存储数据.通过对键值计算hash值,来存储到对应的位置. jdk1.8中底层使用数组加链表实现.键值对通过一个内部类的Node节点来表示.采用链地址法解决hash冲突,如果一条链上的节点超过给定阈值会变为红黑树.默认为8. 在hashmap中是可以存储空key和value的.如果为空,则位置为0. 声明 hashmap继承了AbstractM...原创 2019-05-21 20:36:45 · 135 阅读 · 0 评论 -
TimSort源码分析
TimSort timsort是jdk自带的一种特别高效的排序算法,大致思想使用的是归并排序,但是内部细节做了许多的优化. 在timsort中,主要是为待排序数组分为很多个run块,通过讲这些run块进行归并排序.最后实现总体排序.每个run块的大小为16-32大小. 优化地方: 当待排序数组长度小于32就使用二分排序算法 分为多个run块,在通过把run块的起始位置和长度压入栈中,在进行合并....原创 2019-05-19 20:17:45 · 395 阅读 · 0 评论 -
ThreadLocal实现原理
ThreadLocal简介 ThreadLocal是java中将非线程安全变为线程安全的一个神器.通过为每一个线程保存一个线程本地变量来保证数据的安全性,通过set()和get()方法来使用. 因为每个线程都拥有变量的副本.不和其他线程变量交互,所以不会出现线程安全问题.所以这里有一个点就是ThreadLocal应用的场景应该是变量的访问是没有依赖关系的,每个线程只和自己的数据副本打交道. 属性 ...原创 2019-05-20 22:17:33 · 706 阅读 · 0 评论