Java容器系列-ConcurrentHashMap源码分析
ConcurrentHashMap 用法上与 HashMap 差别不大,但 ConcurrentHashMap 是线程安全的,可以在多线程环境中使用。这篇文章主要会说明 ConcurrentHashMap 专有的一些特点,与 HashMap...
ConcurrentHashMap 用法上与 HashMap 差别不大,但 ConcurrentHashMap 是线程安全的,可以在多线程环境中使用。这篇文章主要会说明 ConcurrentHashMap 专有的一些特点,与 HashMap...
HashMap 实现了 Map 接口。HashMap 使用的很广泛,但不是线程安全的,如果在多线程中使用,必须需要额外提供同步机制(多线程情况下推荐使用 ConCurrentHashMap)。 HashMap 的类图相对简单,主要就是继承了...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
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 的跨度大,但在虚拟机层面有了很大...
在大型系统中,日志是一个很重要的部分,线上问题的排查很大程度上依赖日志。记录日志的过程,大体上可以分成三个步骤: 在程序中对原始日志信息进行采集 对采集下来的日志信息进行格式化 将格式化好的日志信息写入目的地 Log4j2 的架构也自然是按...