![](https://img-blog.csdnimg.cn/ff2cb6d3eab14ea4babdd7840cd46be5.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 51
介绍java的一些基础知识
半__夏
路漫漫其修远兮,吾将上下而求索。
展开
-
阻塞队列之 LinkedBlockingQueue
介绍java阻塞队列的概念原创 2022-04-23 00:13:27 · 604 阅读 · 0 评论 -
并发集合
并发集合 CopyOnWriteArrayList private transient volatile Object[] array; // 通过volatile保证线程之间可见 add() public boolean add(E e) { // 基于J.U.C的可重入锁,加锁 final ReentrantLock lock = this.lock; lock.lock(); try { Object[] elements = getArray();原创 2020-06-11 21:08:30 · 223 阅读 · 2 评论 -
LinkedList源码解读
LinkedList源码解读 底层数据结构 LinkedList底层维护了一个双向链表,每个节点包括一个前驱指针和后继指针 private static class Node<E> { E item; // 实际数据 Node<E> next; // 前驱节点 Node<E> prev; // 后继节点 Node(Node<E> prev, E element, Node<E> next) {原创 2020-06-11 20:59:46 · 138 阅读 · 0 评论 -
ArrayList源码解读
ArrayList源码解读 底层数据结构 ArrayList是在底层维护了一个elementData数组,添加了自动扩容等功能,最终形成了一个动态数组。 基本属性 // 初始化大小 private static final int DEFAULT_CAPACITY = 10; // 初始化一个空数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 底层存放数据的数组 transient Object[] e原创 2020-06-11 20:57:58 · 167 阅读 · 0 评论 -
HashMap源码解读
HashMap源码解读 底层数据结构 HashMap是java对哈希表的一种实现,他保持了哈希表存储key-value键值对的特点,可以通过key快速获取value。他的插入过程大概分为以下几个步骤: 开辟一个数组空间,当插入一个元素时,首先通过hashCode(key)这个方法获取一个hash值,假如是0,那么这个元素就被插入到上面图例中的0这个位置。 假设再进来一个元素key1-va...原创 2020-04-13 01:32:18 · 116 阅读 · 0 评论 -
一段糟糕代码的演进之路
private void removeKeys(List<Map<String, String>> data, List<String> removeKeys) { for (Map<String, String> map : data) { for (String key : removeKeys) { ...原创 2019-06-30 19:58:18 · 99 阅读 · 0 评论