Java系列-CopyOnWriteArrayList源码解析
CopyOnWriteArrayList 是 ArrayList 的线程安全版本。用一句话概括它的特点就是:所有的修改操作都是基于副本来进行的。 设计思想 在 java.util.concurrent 下,有很多线程安全的容器,大致可以分成...
CopyOnWriteArrayList 是 ArrayList 的线程安全版本。用一句话概括它的特点就是:所有的修改操作都是基于副本来进行的。 设计思想 在 java.util.concurrent 下,有很多线程安全的容器,大致可以分成...
ConcurrentHashMap 用法上与 HashMap 差别不大,但 ConcurrentHashMap 是线程安全的,可以在多线程环境中使用。这篇文章主要会说明 ConcurrentHashMap 专有的一些特点,与 HashMap...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
HashMap 实现了 Map 接口。HashMap 使用的很广泛,但不是线程安全的,如果在多线程中使用,必须需要额外提供同步机制(多线程情况下推荐使用 ConCurrentHashMap)。 HashMap 的类图相对简单,主要就是继承了...
fail-fast 实际上是一种系统设计的方法,维基百科上是这样解释的: 在系统设计中,一个 fail-fast 的系统可以通过特定的接口快速报告系统中任何潜在的故障。fail-fast 系统在发现故障时不会尝试继续运行系统,而会立即停止当...
2019年过得真快,不知不觉一年的时间又过去了,从正式参加工作到现在也有一年半时间了。 以前还真没有好好审视自己这几年的经历,借这篇文章,整理一下,然后重新出发。 经历回顾 在学校的大三到研二这段时间(2014-2017)里,我在学校里面创...
LinkedList 作为 List 的另一种实现,也非常的经典。与 ArrayList 不同,LinkedList 底层使用的是双向链表来实现的,具体类图如下: 相比于 ArrayList,LinkedList 继承了 AbstractS...
ArrayList 是使用的最为广泛的一个容器。ArrayList 的类的继承层次图如下: ArrayList 实现了 Collection 和 List 接口,同时也实现了 Cloneable、RandomAccess,所以 ArrayL...
Java 的容器是 Java 语言中很重要的一部分,日常写代码会大量用到各种容器。Java 中的容器是一个庞大的体系,日常的使用和学习都难免纠缠于细节,这样很难全面掌握 Java 的容器。这篇文章总览一下 Java 的容器体系,然后再深入到...
Stream 是 Java8 中一个重大的更新。Stream 为Java 真正带来了函数式编程的特性。对函数式编程不了解的人往往不知道如何动手,通过Benjamin 的教程来完整的学习一下 Java 的这个特性,学会这些技能会让你的代码看起...
Java11 是 Java8 之后的一个 LTS 版本。Java8 的 LTS 将在今年到期,在 Java8 之后,Java11 就是最好的选择了。Java9 到 Java11 的新特性虽然没有 Java8 的跨度大,但在虚拟机层面有了很大...