
源码
不想在山底徘徊的小蜗牛
走着瞧,才能把未来看的更好。
展开
-
结合源码,流程图分析HashMap
一:HashMap的组成 数组:数组类型为Node<K,V>[] table; 链表:Node<K,V>类型 红黑树:节点类型为TreeNode类型 二:添加元素源码分析 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; in原创 2020-06-11 13:37:51 · 183 阅读 · 0 评论 -
源码扩容及HashMap树化
HashMap基本参数 对于HashMap初始容量为16 负载因子为0.75 最小树化长度为64 HashMap的扩容和树化 当前链表的长度大于8时进行树化,转化为红黑树 for (int binCount = 0; ; ++binCount) { if ((e = p.next) == null) { p.next = newNode(hash, key, value, null);原创 2020-06-11 09:21:32 · 364 阅读 · 0 评论 -
首次分析源码List集合源码并没有这么难
前言:本文结合源码整体观察List集合的实现方式,学习交流使用,理解有误希望指正 List整体优缺点 ArrayList 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程安全,效率低。 LinkedList 优点: 底层数据结构是链表,查询慢,增删快。 缺点: 线程不安全,效率高 ArrayList ArrayList在方法内部作为局部变量使用时,方法使用时在线程私有的虚拟机栈中创建栈帧,ArrayList就存原创 2020-06-05 21:17:56 · 329 阅读 · 0 评论