文章列表

ConcurrentHashMap 是如何保证线程安全的?

本文深度解析ConcurrentHashMap保证线程安全的核心原理,对比JDK7的分段锁与JDK8的CAS+synchronized精细化锁机制,详解其如何通过无锁读、协助扩容和volatile可见性实现高并发性能,是理解Java并发集合设计精髓的关键知识点。


犬小哈2026/1/23Java面试八股文

什么是 fail-fast?什么是 fail-safe?

本文详细解析Java集合框架中fail-fast(快速失败)与fail-safe(安全失败)两种迭代器行为的本质区别。深入剖析modCount校验机制、数据快照原理,并通过代码示例对比ArrayList与CopyOnWriteArrayList在并发修改时的不同表现,帮助你在多线程环境下正确选择和使用集合类。


犬小哈2026/1/23Java面试八股文

Set 如何保证元素不重复的?

本文深入解析Java中Set接口如何保证元素唯一性的核心机制,详细剖析HashSet依赖hashCode()和equals()方法、TreeSet依赖Comparable/Comparator比较器的底层实现原理,并通过代码示例演示正确重写这两个方法的关键步骤,是掌握Set集合及其面试考点的必备指南。


犬小哈2026/1/23Java面试八股文

HashMap 的 hash 方法是如何实现的?

本文深入解析Java HashMap中hash()方法的实现原理,详细解读JDK8中通过(h = key.hashCode()) ^ (h >>> 16)进行哈希扰动的设计思想,分析如何通过位运算减少哈希冲突,并对比JDK7与JDK8的不同实现,是理解HashMap高效性的关键知识点。


犬小哈2026/1/23Java面试八股文

HashMap 在 get 和 put 时,底层流程是怎样的?

本文深入源码,完整解析Java HashMap中get与put操作的底层执行流程。从哈希扰动、桶定位、链表/红黑树的查找与插入,到触发树化与扩容的临界条件,详细剖析每个步骤的机制与设计意图,帮助你彻底理解HashMap的高性能原理。


犬小哈2026/1/22Java面试八股文

HashMap 的 remove 方法是如何实现的?

本文深入源码解析Java HashMap中remove方法的完整实现机制,详细阐述其如何通过哈希定位、在链表或红黑树中查找并删除节点,以及删除后可能触发的树退化(Untreeify)过程。涵盖removeNode核心逻辑、返回值语义及并发注意事项,是理解HashMap内部运作原理的关键篇章。


犬小哈2026/1/22Java面试八股文

HashMap 用在并发场景中会出现什么问题?

深入剖析HashMap在并发场景下导致数据丢失、覆盖及JDK7中死循环问题的根本原因。本文从源码层面解析其线程不安全的原理,对比JDK8的改进与遗留问题,并明确指出在高并发环境下应使用ConcurrentHashMap等线程安全容器的正确实践。


犬小哈2026/1/22Java面试八股文