volatile-实现单例模式的双重锁
单例模式的双重锁是一种实现单例模式的技术,通过两次检查实例是否为null,结合同步锁来保证在多线程环境下只创建一个实例,并试图通过减少同步的次数来提高性能。为了确保线程安全,尤其在涉及到对象创建的指令重排的问题的时候,通常需要使用 volatile关键字来修饰单例类的实例变量。
-
-
2025-08-07
|
899 字
|
4 分钟
线程安全单例
-
-
2025-08-07
|
1561 字
|
8 分钟
数据库ACID四大特性
A : Atomicity(原子性) C : Consistency(一致性) I : Isolation(隔离性) D : Durability(持久性)
2025-08-07
|
1107 字
|
6 分钟
ArrayList和LinkedList的区别
ArrayList基于动态数组实现,LinkedList基于双向链表实现,这是它们所有性能差异的根本原因
2025-08-06
|
518 字
|
3 分钟
concurrenthashmap的实现原理
ConcurrentHashMap是Java并发包中一种线程安全的哈希表实现。 HashMap在多线程环境下扩容会出现CPU接近100%的情况,因为HashMap并不是线程安全的,我们可以通过Collections里面的Map<K,V> synchronizedMap(Map<K,V> m) 把HashMap包装成一个线程安全的map
2025-08-06
|
905 字
|
5 分钟
Java HashMap为什么在jdk8引入红黑树
在JDK8之前,HashMap的内部实现主要依赖于数组+链表的结构 当多个元素的哈希值相同的时候(也就是发生哈希冲突的时候),这些元素会被存储在同一个桶里面,形成一个链表。 但这种实现方式在特定情况下会导致性能问题。
2025-08-05
|
502 字
|
3 分钟
Java迭代器Iterator和Iterable
2025-08-05
|
7 字
|
1 分钟
SpringBean生命周期
image
2025-07-28
|
701 字
|
4 分钟