![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
_SpringBoot
这个作者很懒,什么都没留下…
展开
-
HashSet源码分析
今天来分析HashSet源码: public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable 打开HashSet源码发现,HashSet是继承自AbstractSet,实现了Clonable和Serializable类,而我们知道Set接口是继承自Collection的。 HashSet内部属性: static原创 2020-11-04 19:58:03 · 172 阅读 · 0 评论 -
HashTable源码分析
本文采用jdk1.8来分析HashTable源码 Hashtable和HashMap一样,都是一个哈希表,不允许键和值为null,该类是一个线程安全的,每个方法都加了synchronized关键字 Hashtable继承自Dictionary类,而HashMap继承自AbstractMap,本章不写HashMap相关分析,先有个印象,之后作比较。 public class Hashtable<K,V> extends Dictionary<K,V> imple原创 2020-11-03 21:42:58 · 197 阅读 · 0 评论 -
LinkedList源码分析
今天我们来剖析LinkedList源码是什么样的?源码jdk采用jdk1.8,在看源码之前我想大家一定了解了单向链表和双向链表的表结构以及如何增加删除节点,看源码也就快一些,不过不要紧,自己拿一张纸跟着画一遍也就清楚了。(代码解析步骤注释中有) 打开源码 首先我们得知道: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<原创 2020-10-26 22:05:15 · 133 阅读 · 3 评论 -
ArrayList源码剖析
今天我们来探究一下ArrayList里面的究竟。。。本文采用Java8,下面是我自己结合源码对ArrayList的理解: 首先,在我们日常开发中经常也会用到ArrayList,为什么我们要使用ArrayList呢,而不使用其他的数据结构呢? 打开ArrayList源码: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable,原创 2020-10-25 22:24:52 · 118 阅读 · 0 评论 -
仿写HashMap源码
主要是通过get和put方法来理解Hashmap来理解HashMap如何存键值对,没有涉及太深,红黑树请绕行 先贴出手写的HashMap的demo 一、定义Map接口 public interface Map<K,V> { /** * 向Map中插入值 */ public V put(K k,V v); /** * 根据...原创 2019-08-10 11:02:26 · 165 阅读 · 0 评论 -
synchronizedMap源码分析
我们先简单说下HashMap和HashTable 之前学习集合的时候,说到过HashMap是线程不安全的,HashTable是线程安全的,但是HashTable在高并发情况下效率太低,为什么如此的低呢?是因为HashTable为了保证线程安全,给每个方法上都加了synchronized关键字才保证了线程安全 今天我们来学习用工具类Collections来创建线程安全的synchroni...原创 2019-10-05 21:32:00 · 708 阅读 · 0 评论