Java源码学习
文章平均质量分 85
学习了解Java相关的源码与设计
GeneralAndroid
这个作者很懒,什么都没留下…
展开
-
Java集合之ArrayList源码解析
ArrayList是我们在开发中经常使用的一个集合,继续按照以前的风格来解析源码(JDK1.7)。 ArrayList简要概括: 1.ArrayList的底层数据结构是一个数组,确切地说是一个动态数组,每次扩容的时候,都会重新创建一个数组并赋值给成员变量elementData,其容量的扩展方式为:newCapacity = oldCapacity + (oldCapacity >> 1); 2原创 2017-11-29 11:02:19 · 537 阅读 · 0 评论 -
Java集合之ConcurrentHashMap源码浅析
上文中结尾处,我们说到了现在很少用Hashtable,那么在需要线程安全的场景中,我们如何保持同步呢,这就是本文的重点:ConcurrentHashMap(JDK1.7)。ConcurrentHashMap比HashMap以及Hashtable复杂多了,其内部采用了锁分段技术用以提高并发存取效率。我们看一下测试代码: 代码清单1:import java.util.HashMap; import j原创 2017-11-25 14:13:25 · 464 阅读 · 0 评论 -
Java集合之Hashtable源码解析
在进行Hashtable源码解析之前,我先扔出Hashtable与HashMap有哪些区别? 1.关于null,HashMap允许key和value都可以为null,而Hashtable则不接受key为null或value为null的键值对。 2.关于线程安全,HashMap是线程不安全的,Hashtable是线程安全的,因为Hashtable的许多操作函数都用synchronized修饰。3.原创 2017-11-09 00:10:52 · 666 阅读 · 1 评论 -
Java集合之HashMap源码解析
Java集合系列的源码解析,分析代码的版本均为:Sun JDK1.7 这篇文章fuck的是HashMap,为什么先选择它呢,因为Android开发中最常用的数据集合就是HashMap和ArrayList,这里先Fuck HashMap。 通过本篇文章你可以知道下面几点: 1.HashMap内部采用的数据结构——>HashMap内部采用的是数组加单链表来实现的,单链表的插入为头插法。(原创 2017-11-03 15:51:50 · 679 阅读 · 0 评论