04 2016 档案
摘要:因为TreeMap的实现方式是用红黑树这种数据结构进行存储的,所以呢我主要通过分析红黑树的实现在看待TreeMap,侧重点也在于如何实现红黑树,因为网上已经有非常都的关于红黑树的实现。我也看了些,但是有的说的不是很清楚,有的解释的也很清晰。这边主要是我的思路的总结。因为之前在研究HashMap和Cu
阅读全文
摘要:在介绍ConcurrentHashMap源码之前,很有必要复习下java并发编程中的一些基础知识,比如内存模型等。 存储模型 并发编程中的三个概念 1、原子性 2、可见性 3、重排序 对HashMap在jdk8有所了解 对CAS有所了解 对内置锁和显示锁等有所了解 jdk8对ConcurrentHa
阅读全文
摘要:LinkedList 以双向链表实现。链表无容量限制,但双向链表本身使用了更多空间,也需要额外的链表指针操作。 按下标访问元素 get(i)/set(i,e) 要悲剧的遍历链表将指针移动到位(如果i 数组大小的一半,会从末尾移起)。 插入、删除元素时修改前后节点的指针即可,但还是要遍历部分链表的指针
阅读全文
摘要:本文将以以下几个问题来探讨ArrayList的源码实现 1.ArrayList的大小是如何自动增加的 2.什么情况下你会使用ArrayList?什么时候你会选择LinkedList? 3.如何复制某个ArrayList到另一个ArrayList中去?写出你的代码? 4.在索引中ArrayList的增
阅读全文
摘要:因为网上已经太多的关于HashMap的相关文章了,为了避免大量重复,又由于网上关于java8的HashMap的相关文章比较少,至少我没有找到比较详细的。所以才有了本文。 本文主要的内容: 1.HashMap的数据结构,以及java 8的新特征 2.HashMap的put方法的实现原理 3.resiz
阅读全文