首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
集合基础
订阅
遇见阳光
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
HashMap源码分析(JDK 1.8)
HashMap是我们在编程中遇到极其频繁、非常重要的一个集合类,如果能对HashMap做进一步的性能优化是非常有价值的而JDK 1.8做到了,所以非常有必要学习HashMap的重点源码,了解大师的手法。 了散列算法,但是在JDK 1.8中引入了红黑树,在链表的长度大于等于8并且…
Java8 HashMap源码分析
HashMap是基于hash表的map的实现,使用key-value形式存储键值对,并允许使用 null 值和 null 键,但是key只能有一个为null. Map不保证映射的顺序,其内部是根据hash值去模运算去排列的。HashMap内部使用entry数组作为存储的介质. …
小豹子带你看源码:ArrayList
世界上最牛的 Java 代码去哪找?当然是 JDK 咯~计划学习一下常见容器的源码。 我会把我觉得比较有意思或者玄学的地方更新到这里。 用于默认的空数组实例,他们的区别在于是否能获知首次添加元素时对数组的扩充量。这样看我们也是一头雾水,不如我们看一下他是怎样应用的: 我们看,当…
java - LinkedList 源码分析
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比…
Java集合之ConcurrentHashMap源码浅析
上文中结尾处,我们说到了现在很少用Hashtable,那么在需要线程安全的场景中,我们如何保持同步呢,这就是本文的重点:ConcurrentHashMap(JDK1.7)。ConcurrentHashMap比HashMap以及Hashtable复杂多了,其内部采用了锁分段技术用…
HashMap 底层实现原理分析
HashMap 是 Map 的一个实现类,它代表的是一种键值对的数据存储形式。 大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。不保证有序(比如插入的顺序)、也不保证…
JAVA8 新特性实际使用总结(一)
Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。 根据value返回一个Optional。当value为null时会报空指针异常。参数不能为空。 根据value返回一个Optiona…
深入理解HashMap(一)
hashmap我们都用过很多次了,主要目的就是为了加快我们的查找速度。我们学过数据结构的都知道,数组的查询和修改速度很快,但是增加一个元素或者删除一个元素就很慢,但是链表就反过来,链表是增加和删除一个元素很快,查询和修改就很慢。 通常来说,我们为了提高查询的速度,那么在插入元素…
HashMap内部原理解析
注:本文解析的 HashMap 源代码基于 Java 1.7 。 HashMap 在平时 Java/Android 开发中,是绝大多数开发者都普遍使用的集合类。 它内部是基于哈希表实现的键值对存储,继承 AbstractMap 并且实现了 Map 接口。 而对于它的 get/p…
Java集合源码分析之开篇
Java集合是我们使用最频繁的工具,也是面试的热点,但我们对它的理解仅限于使用上,而且大多数情况没有考虑过其使用规范。本系列文章将跟随源码的思路,分析实现的每个细节,以期在使用时避免各种不规范的坑。在这里,我们会惊艳于开发者优秀的设计,也会感激先辈们付出的艰辛努力,更重要的是知…