JDK源码分析
文章平均质量分 89
JDK源码分析
小佘ovo
感谢关注,csdn已经不上线了,不会在更新了。 csdn都是个人在大二到大四期间学习的笔记,有些内容可能并不是正确的,请理解下,技术文章在掘金(持续更新) https://juejin.cn/user/4248168663101239
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vector---JDK1.8源码分析
Vector---JDK1.8源码分析一. Vector介绍二. Vector数据结构三. Vector源码分析①. Vector继承关系②. 基本属性③. 构造方法④. 添加元素方法_add()1. add()2. ensureCapacityHelper()3. grow(minCapacity);4. hugeCapacity⑤. 根据获取元素_get()⑥. 根据下标删除元素_remove()⑦. setSize()方法四. Vector与Arraylist的区别一. Vector介绍Vec原创 2021-07-20 17:12:02 · 467 阅读 · 5 评论 -
LinkedHashSet---JDK1.8源码分析
LinkedHashSet一. LinkedHashSet介绍二. LinkedHashSet源码分析①. 类的继承关系②. 构造函数③. 构造方法都是调用父类的super(initialCapacity, loadFactor, true);一. LinkedHashSet介绍LinkedHashSet是对LinkedHashMap的简单包装,对LinkedHashSet的函数调用都会转换成合适的LinkedHashMap方法。LinkedHashSet是有序的,它是按照插入的顺序排序的。二.原创 2021-07-20 15:55:35 · 334 阅读 · 0 评论 -
HashSet---JDK1.8源码分析
HashSet一. HashSet介绍二. HashSet数据结构三. HashSet源码分析①. 类的继承关系②. 类的属性③. HashSet构造函数④. 常见使用的方法分析一. HashSet介绍HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet 是Set接口的实现类,Set存在的最大意义区别于List就是,Set中存放的元素不能够重复,就是不能够有两个相同的元素存放在原创 2021-07-20 15:35:46 · 343 阅读 · 0 评论 -
Collections.synchronizedList---JDK1.8源码分析
Collections.synchronizedList---JDK1.8源码分析一. Collections.synchronizedList介绍二. Collections.synchronizedList构造函数和属性三. Collections.synchronizedList关键方法_同步四. Collections.synchronizedList_未同步方法五. SynchronizedList、Vector概述①. 构造机制不同②. 扩容机制不同③. 同步机制不同一. Collecti原创 2021-07-20 15:04:58 · 1339 阅读 · 4 评论 -
CopyOnWriteArraySet---JDK1.8源码分析
CopyOnWriteArraySet一.CopyOnWriteArraySet介绍二. CopyOnWriteArraySet数据结构三. CopyOnWriteArraySet源码分析①. 类的继承关系②. 类的属性③. 类的构造函数④. 核心函数分析四. CopyOnWriteArraySet测试案列一.CopyOnWriteArraySet介绍它是线程安全的无序的集合,可以将它理解成线程安全的HashSet,CopyOnWriteArraySet和HashSet虽然都继承于共同的父类都继承于共原创 2021-07-20 12:01:12 · 355 阅读 · 0 评论 -
Comparable和Comparator---JDK1.8源码分析
Comparable和Comparator-源码分析一. Comparable源码分析①. Comparable的唯一方法compareTo()②. String源码重写compare() 方法③. Comparable接口使用方式二. Comparator源码分析①. Comparator里面的方法分析②. Comparator接口使用方式三. Comparable和Comparator比较一. Comparable源码分析 Comparable是排序接口。若一个类实现了Comparable接口,就原创 2021-05-16 16:12:42 · 626 阅读 · 1 评论 -
CopyOnWriteArrayList---JDK1.8源码分析
CopyOnWriteArrayList源码分析一. CopyOnWriteArrayList介绍二. CopyOnWriteArrayList源码分析①. CopyOnWriteArrayList的内部类---COWIterator类②. CopyOnWriteArrayList的属性③. CopyOnWriteArrayList的构造函数④. Arrays.copyOf()方法⑤. add(E e) 方法⑥. addIfAbsent() 方法⑦. set(int index, E element)方法原创 2021-05-16 14:24:54 · 441 阅读 · 1 评论 -
ConcurrentHashMap---JDK1.8源码分析
ConcurrentHashMap实现原理及源码分析一、HashMap,HashTable简单介绍二、ConcurrentHashMap分析---Jdk1.7三、ConcurrentHashMap分析---Jdk1.8①. ConcurrentHashMap基本属性②. ConcurrentHashMap的Node节点③. ConcurrentHashMap的红黑树TreeNode节点④.ConcurrentHashMap的TreeBin存储树形结构的容器⑤. ConcurrentHashMap的节点put原创 2021-03-05 22:17:06 · 464 阅读 · 0 评论 -
SynchronousQueue---JDK1.8源码分析
SynchronousQueue一. SynchronousQueue介绍二. SynchronousQueue数据结构三. SynchronousQueue源码分析①. 类的继承关系②. 类的属性③. 类的构造函数④. 类的内部类_Transferer⑤. 类的内部类_TransfererStack1. 类的属性和继承关系2. 类的内部类_SNode类3. 类的构造函数4. tryMatch函数5. isFulfilling函数6. transfer函数7. awaitFulfill函数8. shoul原创 2021-07-20 10:11:01 · 465 阅读 · 3 评论 -
LinkedBlockingQueue---JDK1.8源码分析
LinkedBlockingQueue---JDK1.8源码分析一. LinkedBlockingQueue介绍二. LinkedBlockingQueue数据结构三. LinkedBlockingQueue源码分析①. 类的继承关系②. 类的内部类Node③. 类的属性④. 类的构造函数⑤. 阻塞插入操作_put⑥. 非阻塞插入_offer⑦. 阻塞取出_take⑧. 非阻塞取出 poll⑨. 提取元素:peek()和element()⑩. 移除元素 remove的实现原理四. LinkedBlockin原创 2021-07-19 22:59:41 · 327 阅读 · 0 评论 -
ArrayBlockingQueue---JDK1.8源码分析
ArrayBlockingQueue一. ArrayBlockingQueue介绍二. ArrayBlockingQueue数据结构三. ArrayBlockingQueue源码分析①. 类的继承关系②. 类的属性③. 类的构造函数④. put()方法④. enqueue() 方法⑤. offer()方法⑥. add()方法⑦. poll()方法⑦. dequeue() 方法⑧. take()方法⑨. remove()方法⑩. clear() 方法四. ArrayBlockingQueue方法总结一. A原创 2021-07-19 21:49:57 · 338 阅读 · 1 评论 -
Collections.SynchronizedMap---JDK1.8源码分析
Collections.SynchronizedMap---JDK1.8源码分析一. Collections.SynchronizedMap基本变量二. Collections.SynchronizedMap继承关系三. Collections.SynchronizedMap构造函数四. Collections.SynchronizedMap的主要方法五. 总结一. Collections.SynchronizedMap基本变量 private static final long serialV原创 2021-07-19 18:16:34 · 397 阅读 · 0 评论 -
ConcurrentHashMap---JDK1.7源码分析
ConcurrentHashMap---JDK1.7源码分析一. ConcurrentHashMap---Jdk1.7源码分析①. ConcurrentHashMap概述②. ConcurrentHashMap底层数据结构③. HashEntry数组④. Segment结构⑤. ConcurrentHashMap成员变量⑥. ConcurrentHashMap构造函数⑦. ConcurrentHashMap的put操作⑧. ConcurrentHashMap的get()操作⑨. ConcurrentHash原创 2021-07-19 17:36:54 · 352 阅读 · 0 评论 -
TreeMap---JDK1.8源码分析
TreeMap一. TreeMap介绍二. TreeMap示例三. TreeMap数据结构四. TreeMap源码分析①. 类的继承关系②. 类的属性③. 存储结构④. 类的构造函数⑤. put(K key,V value):将键值对(key,value)添加到TreeMap中⑥. get(Object key)获取元素⑦. 使用getEntryUsingComparator函数来完成获取元素⑧. remove(Object key)删除指定下标节点⑨. deleteEntry(Entry一. TreeMa原创 2021-07-19 15:02:02 · 405 阅读 · 1 评论 -
ArrayList---JDK1.8源码分析
ArrayList源码分析---JDK1.8一. ArrayList的数据结构二. ArrayList源码分析①. 继承关系②. 类中的属性③. 构造方法④. 核心方法1. add(E e)__有四个方法,我仔细分析一个2. ensureCapacityInternal(size + 1) 确定内部容量的方法3. calculateCapacity() 主要看list是不是初始的时候是空参构造函数4. 还是确保明确的容量 ensureExplicitCapacity(int minCapacity)5. g原创 2021-04-26 21:19:15 · 1115 阅读 · 4 评论 -
LinkedList源码分析---JDK1.8
LinkedList源码分析---JDK1.8一、LinkedList介绍①. LinkedList继承关系②. LinkedList的数据结构③. LinkedList和ArrayList相比较二、LinkedList源码分析①. 类的属性一、LinkedList介绍①. LinkedList继承关系LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的。LinkedList 是一个继承于AbstractSequentialList的双向链表。原创 2021-04-27 21:03:34 · 402 阅读 · 0 评论 -
HashMap为什么是不安全的----JDK1.8源码分析
JDK1.8_HashMap为什么是不安全的1.HashMap不安全造成的影响2. HashMap的putVal()方法源码分析1.HashMap不安全造成的影响在JDK1.8中,在多线程环境下,会发生数据覆盖的情况。JDK1.8在进行元素插入时使用的是尾插法。2. HashMap的putVal()方法源码分析在JDK1.8中对HashMap进行了优化,在发生hash碰撞,不再采用头插法方式,而是直接插入链表尾部,因此不会出现环形链表的情况,但是在多线程的情况下仍然不安全,这里我们看JDK1原创 2021-03-02 18:35:42 · 661 阅读 · 0 评论 -
LinkedHashMap----JDK1.8源码分析
LinkedHashMap分析1. 比较LinkedHashMap和HashMap2. LinkedHashMap介绍3. LinkedHashMap简单分析源码4. LinkedHashMap实现简单LRU算法1. 比较LinkedHashMap和HashMappackage com.xizi;import java.util.*;public class TestLinkedHashMap { public static void main(String[] args) {原创 2021-02-28 12:01:40 · 501 阅读 · 0 评论 -
HashMap----JDK1.8源码分析
JDK1.8_HashMap分析1.HashMap数据结构2. HashMap的基本属性3. 通过hash函数进行计算索引的位置4. HashMap的get()方法5. hashmap的链表getNode()方法获取值6. hashmap的红黑树getTreeNode()获取值7. Hashmap里的find()方法8. Hashmap里的comparableClassFor()方法8. HashMap里的put()方法存储键值对8. HashMap里的putVal()方法存储键值对9. HashMap里的原创 2021-03-01 22:27:35 · 467 阅读 · 2 评论
分享