首页
个人开发
工作相关
共享
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1823
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
共享
Java基础
2025-12-13
请解释Java中HashMap的工作原理,并说明如何处理哈希冲突
HashMap基于哈希表实现键值对存储,核心机制包括:使用hashCode()计算桶位置JDK 8后采用数组+链表+红黑树结构哈希冲突通过链地址法解决:链表长度≥8且数组长度≥64时,链表转红黑树红黑树节点≤6时退化为链表扩容机制:默认负载因子0.75,扩容时容量翻倍
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
深入理解Java内存模型:volatile关键字如何保证可见性与有序性
volatile关键字通过以下机制保证可见性和有序性:可见性:强制所有线程从主内存读取最新值,写操作立即刷新到主内存禁止指令重排序:通过内存屏障(Memory Barrier)禁止编译器和CPU的重排序优化happens-before原则:确保volatile写操作先于后续的读操作典型应用场景:状态标志位、双重检查锁定(DCL)等
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
深入解析Java内存模型中的可见性问题及volatile关键字的底层实现
核心要点:Java内存模型(JMM)规定线程通过工作内存与主内存交互,导致非同步变量的修改可能对其他线程不可见volatile通过内存屏障禁止指令重排序,保证可见性和有序性底层依赖CPU的MESI缓存一致性协议和内存屏障指令实现适用场景:状态标志、双重检查锁定等,但不保证原子性常见错误:误用volatile替代同步机制处理复合操作
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
Java中的String类是不可变的吗?请解释其含义和影响
是的,Java中的String类是不可变的(Immutable)。这意味着:String对象一旦创建,其内容就不能被修改所有看似修改字符串的操作(如拼接、替换)实际是创建新对象这种设计带来线程安全、缓存哈希值等优势,但可能影响性能
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
Java中HashMap的工作原理及如何解决哈希冲突
HashMap通过数组+链表/红黑树存储数据,解决哈希冲突的核心机制:使用hashCode()确定桶位置哈希冲突时采用链地址法(链表转红黑树)依赖equals()方法判断键值相等扩容机制:默认负载因子0.75,扩容时重新散列
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-12
深入理解Java内存模型(JMM)与并发编程中的可见性问题
当多个线程访问共享变量时,volatile关键字通过以下机制保证可见性:禁止指令重排序(通过内存屏障)强制线程每次读取都从主内存获取最新值确保写入操作立即刷新到主内存但需注意:volatile不保证原子性,复合操作仍需同步机制。
2025年-12月-12日
4 阅读
0 评论
Java基础
2025-12-12
Java中String类的不可变性
String对象在Java中是不可变的,主要特点包括:一旦创建,内容不可修改字符串拼接等操作会创建新对象使用字符串池(String Pool)优化内存线程安全,无需额外同步
2025年-12月-12日
4 阅读
0 评论
Java基础
2025-12-12
HashMap的底层实现原理及如何正确重写equals()和hashCode()方法
正确实现HashMap键对象需要同时重写equals()和hashCode()方法:两个对象相等(equals)则hashCode必须相同hashCode相同的对象不一定相等重写equals需满足:自反性、对称性、传递性、一致性推荐使用Objects.hash()生成hashCode
2025年-12月-12日
4 阅读
0 评论
Java基础
2025-12-12
如何设计线程安全的延迟初始化单例?深入分析DCL失效问题及解决方案
实现线程安全的延迟初始化单例需解决DCL(Double-Checked Locking)失效问题:使用volatile修饰实例变量禁止指令重排序同步块内进行二次检查确保单例私有化构造方法防止外部实例化正确代码示例:public class Singleton { private static volatile Singleton instance; public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
2025年-12月-12日
4 阅读
0 评论
Java基础
2025-12-9
深入解析Java内存模型中的可见性问题及解决方案
解决Java并发中的可见性问题需要:理解JMM中主内存与工作内存的交互机制使用volatile关键字保证变量修改的可见性通过happens-before原则控制执行顺序避免依赖volatile实现原子操作(应使用锁或原子类)警惕指令重排序导致的意外行为
2025年-12月-9日
5 阅读
0 评论
Java基础
1
2
3