
java容器类源码
文章平均质量分 95
埃泽漫笔
OceanBase开源项目ODC(OceanBase Developer Center)的核心贡献者,Github地址:https://github.com/oceanbase/odc,希望大家能赏脸支持下我们OceanBase公司的开源项目,点亮一颗小星星就行。
Maven中央仓库OceanBase开源组件 https://central.sonatype.com/artifact/com.oceanbase/db-browser 和 https://central.sonatype.com/artifact/com.oceanbase/ob-sql-parser 的核心贡献者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ArrayList源码
ArrayList的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于,实现了ListCloneable这些接口。List: 表明它是一个列表,支持添加、删除、查找等操作,并且可以通过下标进行访问。:这是一个标志接口,表明实现这个接口的List集合是支持快速随机访问的。在ArrayList。原创 2024-10-30 08:15:36 · 1028 阅读 · 0 评论 -
LinkedList源码
LinkedList是一个基于双向链表实现的集合类不过,我们在项目中一般是不会使用到LinkedList的,需要用到LinkedList的场景几乎都可以使用ArrayList来代替,并且,性能通常会更好!就连LinkedList的作者约书亚 · 布洛克(Josh Bloch)自己都说从来不会使用LinkedList。另外,不要下意识地认为LinkedList作为链表就最适合元素增删的场景。LinkedList。原创 2024-10-30 08:16:40 · 779 阅读 · 0 评论 -
HashMap源码
HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。HashMap可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8 以后的HashMap。原创 2024-10-30 08:17:38 · 798 阅读 · 0 评论 -
LinkedHashMap源码
是 Java 提供的一个集合类,它继承自HashMap,并在HashMap支持遍历时会按照插入顺序有序进行迭代。支持按照元素访问顺序排序,适用于封装 LRU 缓存工具。因为内部使用双向链表维护各个节点,所以遍历时的效率和元素个数成正比,相较于和容量成正比的 HashMap 来说,迭代效率会高很多。逻辑结构如下图所示,它是在HashMap基础上在各个节点之间维护一条双向链表,使得原本散列在不同 bucket 上的节点、链表、红黑树有序关联起来。是 Java 集合框架中HashMap。原创 2024-10-30 08:26:47 · 931 阅读 · 0 评论 -
CopyOnWriteArrayList源码
在 JDK1.5 之前,如果想要使用并发安全的List只能选择Vector。而Vector是一种老旧的集合,已经被淘汰。Vector对于增删改查等方法基本都加了,这种方式虽然能够保证同步,但这相当于对整个Vector加上了一把大锁,使得每个方法执行的时候都要去获得锁,导致性能非常低下。JDK1.5 引入了(JUC)包,其中提供了很多线程安全且并发性能良好的容器,其中唯一的线程安全List实现就是。原创 2024-10-30 08:28:05 · 978 阅读 · 0 评论 -
ArrayBlockingQueue源码
Java 阻塞队列的历史可以追溯到 JDK1.5 版本,当时 Java 平台增加了,即我们常说的 JUC 包,其中包含了各种并发流程控制工具、并发容器、原子类等。这其中自然也包含了我们这篇文章所讨论的阻塞队列。为了解决高并发场景下多线程之间数据共享的问题,JDK1.5 版本中出现了和,它们是带有生产者-消费者模式实现的并发容器。其中,是有界队列,即添加的元素达到上限之后,再次添加就会被阻塞或者抛出异常。而则由链表构成的队列,正是因为链表的特性,所以在添加元素上并不会向那样有着较多的约束,所以。原创 2024-10-30 08:33:43 · 869 阅读 · 0 评论