首页
个人开发
工作相关
共享
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1823
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
共享
Java基础
2025-12-13
String对象比较:==与equals()的区别
在Java中比较字符串时:== 比较对象的内存地址是否相同equals() 比较字符串的内容是否相同字符串字面量会存储在常量池中复用使用new String()会强制创建新对象
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
深入解析volatile关键字在Java内存模型中的作用及多线程场景下的陷阱
volatile关键字的核心作用:保证变量的可见性:确保所有线程都能读取到最新值禁止指令重排序:通过内存屏障实现不保证原子性:复合操作仍需同步机制典型应用场景:状态标志位、双重检查锁定模式(DCL)、发布不可变对象
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
Java中String对象的不可变性及字符串拼接
String对象在Java中是不可变的,任何修改操作都会创建新对象。字符串拼接的两种主要方式:使用+运算符:编译期优化常量拼接,运行时创建新对象使用StringBuilder:适合循环或频繁修改场景,避免内存浪费
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
深入理解Java内存模型与volatile关键字的底层原理及实践
volatile关键字通过以下机制保证线程安全:禁止指令重排序:通过内存屏障(Memory Barrier)确保操作顺序保证内存可见性:强制线程从主内存读取最新值,写操作立即刷新到主内存不保证原子性:复合操作(如i++)仍需配合synchronized或原子类典型应用场景:状态标志位、双重检查锁定(DCL)单例模式
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
如何正确重写equals()和hashCode()方法?
正确重写equals()和hashCode()需要遵循以下原则:equals()规范:满足自反性、对称性、传递性、一致性和非空性hashCode()规范:相等对象必须有相同哈希码,不相等对象尽量不同同步重写:重写equals()时必须同时重写hashCode()使用关键字段:计算应基于equals()比较中使用的字段
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
Java中字符串比较:== 和 equals() 的区别
在Java中比较字符串时:== 运算符:比较两个对象的内存地址是否相同(是否同一个对象)equals() 方法:比较两个字符串的内容是否相同(字符序列是否一致)最佳实践:比较字符串内容时必须使用 equals(),避免使用 ==
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
HashMap的工作原理及线程安全问题
HashMap基于数组+链表/红黑树实现,通过哈希算法确定键值对存储位置。主要特点:使用hashCode()和equals()确定键的唯一性JDK8后链表长度>8时转换为红黑树默认负载因子0.75,触发扩容时容量翻倍线程不安全问题:多线程扩容可能导致死循环或数据丢失解决方案:使用ConcurrentHashMap或Collections.synchronizedMap()
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
深入理解Java内存模型:volatile与synchronized在双重检测单例模式中的差异
在双重检测单例模式中,volatile关键字解决的核心问题是指令重排序导致的初始化不完整对象可见性问题:未使用volatile时,对象初始化可能被重排序为:1.分配内存 2.引用赋值 3.初始化构造,导致其他线程获取到未初始化的实例volatile通过内存屏障禁止指令重排序,保证写操作前的所有操作完成synchronized仅保证代码块内的原子性和可见性,无法防止重排序正确实现需同时使用volatile和synchronized双重检测
2025年-12月-13日
5 阅读
0 评论
Java基础
2025-12-13
如何设计线程安全的延迟初始化单例模式?
实现线程安全的延迟初始化单例需解决三个核心问题:指令重排序问题:使用 volatile 修饰实例变量线程竞争问题:通过双重检查锁定(DCL)减少同步开销类初始化安全性:利用静态内部类实现更优的方案推荐两种实现方式:双重检查锁定 + volatile静态内部类(Holder模式)
2025年-12月-13日
4 阅读
0 评论
Java基础
2025-12-13
HashMap的工作原理及哈希冲突处理
HashMap的核心实现机制和冲突处理方式:基于数组+链表/红黑树的存储结构使用链地址法处理哈希冲突通过hashCode()和equals()确定键的唯一性Java 8优化:链表长度>8且桶数量>64时转换为红黑树扩容机制:负载因子(默认0.75)触发2倍扩容
2025年-12月-13日
4 阅读
0 评论
Java基础
1
2
3