首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java基础源码
订阅
hsfxuebao
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 1订阅
史上最全的Java容器集合之HashMap(源码解读)
Map接口的具体实现中存在三种Map结构,其中HashMap和TreeMap都允许存在null值,而HashTable的key不允许为空,但是HashMap不能保证遍历元素的顺序,TreeMap能够保证遍历元素的顺序。 哈希表(HashTable,散列表)是根据key-valu…
史上最全的Java容器集合之equals 和 hashCode
从代码中可以看出,原生的equals方法使用的是“==”来比较的。学过Java的人都应该知道,“==”比较的是内存地址,所以原生的equals方法只有在自己与自己比较的时候才会返回true,是严格的判断一个对象是否相等的方法。所以,如果类具有自己特有的“逻辑相等”概念(不同于对…
史上最全的Java容器集合之Vector和LinkedList(源码解读)
看图上面的 这个是Vetor和ArrayList不同的另一个点 它的增长因子是可以自己定义的。我们来看grow方法 LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存…
史上最全的Java容器集合之入门
通常,我们的Java程序需要根据程序运行时才知道创建了多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了…
分析JDK动态代理的实现
而今天我要讲的是前者,基于接口的动态代理。动态代理在框架中的应用非常广泛,理解了动态代理,对spring,mybatis等常用框架的源码阅读也非常有帮助。这篇文章的由来也是因为肺炎(各位一定不用乱跑阿,出门也要记得带口罩,这个真的很重要!!!),只能在家看mybatis源码,看…
《吊打面试官》系列-ConcurrentHashMap & Hashtable
作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法)。 所有文章的名字只是我的噱头,我们应该有一颗谦逊的心,所以希望大家怀着空杯心态好好学,一起进步。 上次面试呀,我发现面试官对…
史上最全的Java容器集合之LinkedHashMap(源码解读)
LinkedHashMap是HashMap的子类,它的大部分实现与HashMap相同,两者最大的区别在于,HashMap的对哈希表进行迭代时是无序的,而 LinkedHashMap对哈希表迭代是有序的,LinkedHashMap默认的规则是,迭代输出的结果保持和插入key-va…
史上最全的Java容器集合之ArrayList(源码解读)
概念:ArrayList是一个其容量能够动态增长的动态数组。但是他又和数组不一样,下面会分析对比。它继承了AbstractList,实现了List、RandomAccess, Cloneable, java.io.Serializable。 RandomAccess接口,被Li…
史上最全的Java容器集合之基础数据结构(手撕链表)
一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。 有序性:数组中的元素是有序的,通过下标访问。 不可变性:数组一旦初始化,则长度(数组中元素的个数)不可变。 先不管为什么没有length成员变量,我们先搞清楚[I这个类是哪里声明的。既然[I都不是合…
史上最全的Java容器集合之ConcurrentHashMap1.8(源码解读)
这些目前等讲JVM的时候我们再一起去探讨吧,我们今天主要是过一下它,等后面把知识点串起来就会明白的。 ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架Spring的底层数据结构就是使用Conc…