
源码分析
文章平均质量分 80
源码分析
mocas_wang
摸鱼专家
展开
-
剖析JDK8中Arrays.sort底层原理
数组一进来,会碰到第一个阀值QUICKSORT_THRESHOLD(286),注解上说,小过这个阀值的进入Quicksort (快速排序),其实并不全是,点进去sort(a, left, right, true);方法: // Use Quicksort on small arrays if (right - left < QUICKSORT_THRESHOLD) { sort(a, left, right, true);转载 2021-07-29 17:53:23 · 423 阅读 · 0 评论 -
图解AQS实现的源码原理
1 aqs概述AQS中 维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)。这里volatile能够保证多线程下的可见性,当state=1则代表当前对象锁已经被占有,其他线程来加锁时则会失败,加锁失败的线程会被放入一个FIFO的等待队列中,比列会被UNSAFE.park()操作挂起,等待其他获取锁的线程释放锁才能够被唤醒。另外state的操作都是通过CAS来保证其并发修改的安全性。具体原理我们可以用一张图来简单概括:原创 2020-12-16 15:28:17 · 595 阅读 · 0 评论 -
ConcurrentHashMap源码分析
目录1 ConcurrentHashMap介绍1.1 结构介绍1.2 原理介绍2 ConcurrentHashMap源码分析3 ConcurrentHashMap的同步机制4 ConcurrentHashMap扩容机制什么情况会触发扩容transfer实现扩容相关的属性transferIndex属性何时扩容1 ConcurrentHashMap介绍1.1 结构介绍ConcurrentHashMap是线程安全的哈希表。HashMap, Hashtab原创 2020-11-28 17:12:20 · 379 阅读 · 0 评论 -
Java集合 LinkedList 底层详解
1基本介绍LinkedList类是List接口的实现类,它是一个集合,可以根据索引来随机的访问集合中的元素,还实现了Deque接口,它还是一个队列,可以当成双端队列来使用。虽然LinkedList是一个List集合,但是它的实现方式和ArrayList是完全不同的,ArrayList的底层是通过一个动态的Object[]数组实现的,而LinkedList的底层是通过链表来实现的,因此它的随机访问速度是比较差的,但是它的删除,插入操作很快。LinkedList是基于双向循环链表实现的,除了可以当作链表转载 2020-11-28 10:53:31 · 703 阅读 · 1 评论 -
Java集合系列之ArrayList底层实现原理
目录1 ArrayList的数据结构2 ArrayList的线程安全性3 ArrayList的继承关系4 ArrayList的主要成员变量5 ArrayList的构造方法5.1 无参构造方法5.2 int类型参数构造方法5.3 Collection类型构造方法6 ArrayList的扩容机制6.1 add 方法6.2 ensureCapacityInternal() 方法6.3 ensureExplicitCapacity() 方法6.4 grow() .原创 2020-11-28 10:39:37 · 1581 阅读 · 0 评论 -
红黑树原理和算法详细介绍
目录1 R-B Tree简介2 红黑树的时间复杂度和相关证明3 红黑树的基本操作1. 左旋2. 右旋3. 添加4.1 删除1 R-B Tree简介R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。二叉查找树二叉查找树,也称有序二叉树(orderedbinarytree),或已排序二叉树(sortedbinarytree),是指一棵...转载 2020-11-15 11:12:54 · 4315 阅读 · 1 评论 -
HashMap实现原理及源码分析
目录1 什么是哈希表2 HashMap概念和底层结构3 HashMap实现原理3.1 源码分析3.2 为何HashMap的数组长度一定是2的次幂?3.3 重写equals方法需同时重写hashCode方法4 源码分析1.位桶数组2.数组元素Node3.红黑树HashMap加载因子HashMap的构造函数如何获取: get(object key) 方法如何存储:put(k,v) 方法HasMap的扩容机制resize()5 问题解决5.1 J原创 2020-11-15 10:38:38 · 1302 阅读 · 0 评论