JDK源码解析
本专栏将分析JDK 8 中的容器、JUC等源码,以便记录自己的学习过程,分享自己的学习心得,和同行进行交流指正。
TaiSung
Good developers who are familiar with the entire stack know how to make life easier for those around them.
展开
-
JDK 8 TreeMap 源码解析
【本文是为了梳理知识的总结性文章,总结了一些自认为相关的重要知识点,只为巩固记忆以及技术交流,忘批评指正。其中参考了很多前辈的文章,包括图片也是引用,如有冒犯,侵删。】0存储结构TreeMap是一个有序的Map,内部按照Key的排序结果来组织。一般如果没有需要排序的情况下,我们都使用HashMap或者多线程下使用ConcurrentHashMap,因为TreeMap的插入和删除的效率没...原创 2019-04-22 22:43:16 · 374 阅读 · 0 评论 -
JDK 8 HashSet 源码解析
【本文是为了梳理知识的总结性文章,总结了一些自认为相关的重要知识点,只为巩固记忆以及技术交流,忘批评指正。其中参考了很多前辈的文章,包括图片也是引用,如有冒犯,侵删。】0存储结构从底层实现来看,HashSet调用了HashMap来存储元素,不过之用到了Key,Value则用一个固定对象替代。由于Map中的key是不可重复的,这和Set不存在重复元素的特点刚好契合。使用HashMap也意...原创 2019-04-16 21:00:54 · 278 阅读 · 0 评论 -
JDK 8 LinkedList 源码解析
【本文是为了梳理知识的总结性文章,总结了一些自认为相关的重要知识点,只为巩固记忆以及技术交流,忘批评指正。其中参考了很多前辈的文章,包括图片也是引用,如有冒犯,侵删。】0存储结构从底层实现来看,LinkedList是链表实现的,其本质是双向链表。与ArrayList相比,LinkedList的插入和删除速度更快,但是随机访问速度则很慢。LinkedList的优点在于可以将零散的内存单元通...原创 2019-04-15 22:05:48 · 290 阅读 · 0 评论 -
JDK 8 ArrayList 源码解析
【本文是为了梳理知识的总结性文章,总结了一些自认为相关的重要知识点,只为巩固记忆以及技术交流,忘批评指正。其中参考了很多前辈的文章,包括图片也是引用,如有冒犯,侵删。】0存储结构从底层实现来看,Array是数组实现的,与数组不同的是,其容量是可以改变的。集合扩容的时候会创建更大的数组空间,把原有数据复制到新数组中。ArrayList支持对元素的快速随机访问,但是插入和删除时速度通常很慢...原创 2019-04-12 21:59:28 · 1041 阅读 · 0 评论 -
JDK 8 HashMap 源码解析
【本文是为了梳理知识的总结性文章,总结了一些自认为相关的重要知识点,只为巩固记忆以及技术交流,忘批评指正。其中参考了很多前辈的文章,包括图片也是引用,如有冒犯,侵删。】目录0存储结构1 类定义2静态常量3 属性4构造函数5 链表节点6 功能方法确定哈希桶数组索引位置hash扰动函数计算方法取模运算优化7 常用方法get方法put方法...原创 2019-04-08 22:34:24 · 254 阅读 · 0 评论