hashmap

没有bug.的程序员8 天前
java·性能优化·并发编程·源码分析·红黑树·hashmap·技术深度
HashMap 源码深度剖析:红黑树转换机制与高并发性能陷阱在 Java 程序员的职业生涯中,HashMap 像是一道永远绕不开的“必修课”。无论是初出茅庐的校招面试,还是架构级别的技术评审,它总是处于风暴的中心。有人说它是 Java 集合框架的皇冠,也有人说它是新手最容易掉进去的“性能陷阱”。
CodeAmaz17 天前
java·hashmap·线程安全map
ConcurrentHashMap(JDK 7/8)详细介绍目标:让你在面试里把 ConcurrentHashMap 讲“透”,包括:数据结构、并发控制、扩容、put/get 流程、JDK7 vs JDK8 差异、常见坑与高频追问。
CodeAmaz18 天前
java·hashmap
HashMap 面试全攻略面试问 HashMap,本质就是在问:你到底懂不懂数据结构 + 并发 + JDK 演进。 这份文档就是冲着“高级 / 资深 Java 面试”来的。
予枫的编程笔记19 天前
java·开发语言·散列表·hashmap
深度剖析 HashMap:从 JDK 1.7 死循环到 1.8 高低位映射优化作者:[予枫]发布时间:2026年1月分类:Java 后端 / 底层原理在计算机科学中,哈希表通过哈希函数将 Key 映射到数组下标,实现 $O(1)$ 的查找效率。然而,由于哈希函数输出空间有限,哈希冲突(Hash Collision) 避不可免。
C雨后彩虹1 个月前
java·数据结构·哈希算法·集合·hashmap
ConcurrentHashMap 扩容机制:高并发下的安全扩容实现在上一篇文章中,我们拆解了 ConcurrentHashMap 的 put 和 get 方法源码,明确了其核心的并发安全存取逻辑。而在高并发场景下,扩容操作的实现难度远高于普通 Map—— 既要保证扩容过程中的数据一致性,又要避免单线程扩容带来的性能瓶颈。
C雨后彩虹1 个月前
java·算法·哈希算法·集合·hashmap
ConcurrentHashMap 源码逐行拆解:put/get 方法的并发安全执行流程在上一篇文章中,我们掌握了 JDK1.8 ConcurrentHashMap 的核心锁机制 ——CAS 无锁操作与桶级 synchronized 锁的协同逻辑。而这些机制最终都落地到 put 和 get 这两个核心方法中,它们的执行流程直接决定了 ConcurrentHashMap 的并发安全与存取效率。
C雨后彩虹1 个月前
java·数据结构·哈希算法·集合·hashmap
ConcurrentHashMap 核心锁机制:CAS+Synchronized 的协同工作原理在上一篇文章中,我们了解到 JDK1.8 的 ConcurrentHashMap 摒弃了分段锁,转而采用CAS 无锁操作 + 桶级 synchronized 锁的组合方案实现并发安全。这两种机制并非独立工作,而是通过精准的分工与协同,在保证线程安全的同时,最大化提升并发性能。
C雨后彩虹1 个月前
java·数据结构·哈希算法·集合·hashmap
HashMap的线程安全问题:原因分析与解决方案在前一篇文章中,我们拆解了 HashMap 的 put 和 get 方法源码,明确了其在单线程下的高效存取逻辑。但 HashMap 的设计初衷是面向 单线程场景 ,在多线程并发操作时,会出现数据错乱、死循环等严重问题。
C雨后彩虹1 个月前
java·数据结构·哈希算法·集合·hashmap
ConcurrentHashMap入门:高并发场景的 HashMap替代方案在 Java 开发的高并发场景中,HashMap 因线程不安全的特性无法直接使用,而 Hashtable、 Collections.synchronizedMap 又存在并发性能瓶颈。此时, ConcurrentHashMap 作为 JUC(java.util.concurrent)包下的高性能线程安全 Map 实现,成为了并发键值对存储的首选方案。
努力发光的程序员1 个月前
java·jvm·线程池·多线程·hashmap·juc·arraylist
互联网大厂Java求职面试实录在一家知名的互联网大厂的面试间,面试官严肃地坐在桌子后面,而求职者谢飞机满脸笑容地坐在对面。面试官:谢飞机,请你讲一下Java中的内存模型(JMM)是什么?
10km1 个月前
java·stream·hashmap·merge
java: HashMap.merge 的 Null 值陷阱:为什么 Stream API 会抛出 NPE在 Java 开发中,我们经常使用 HashMap 和 Stream API 进行数据处理。然而,许多开发者都会遇到一个令人困惑的问题:HashMap 明明允许 null 作为键和值,但在使用 Collectors.toMap() 时,如果遇到 null 值却会抛出 NullPointerException。这篇文章将深入探讨这个问题背后的原因,并提供实用的解决方案。
Jiong-9522 个月前
java·jvm·线程池·多线程·hashmap·juc·arraylist
Java求职面试:谢飞机的奇妙旅程场景描述: 在互联网大厂的一间会议室里,面试官正襟危坐,对面坐着的是今天的面试者谢飞机。谢飞机看起来有些紧张,但仍然保持着轻松的笑容。
Peter(阿斯拉)2 个月前
java·集合·hashmap·hashset·treemap
[Java性能优化]_[容器创建枚举去重的最优方法]HashMap通过containsKey判断去重再添加进ArrayList使用HashSet传入ArrayList对象时去重。
lkbhua莱克瓦242 个月前
java·开发语言·笔记·学习方法·hashmap
集合进阶6——TreeMap底层原理每一个Entry对象内部的属性有:key(键)、value(值)、left(左子节点地址值)、right(右子节点地址值)、color(该节点的颜色)。
7澄12 个月前
java·开发语言·intellij-idea·交互·控制台·hashmap
Java 实战:投票统计系统(HashMap 应用)设计一个投票统计系统,支持多人投票并统计结果,核心需求如下:1. 使用 HashMap 存储候选人姓名(键)与得票数(值);
飞鱼&2 个月前
java·hashmap
HashMap相关问题详解HashMap底层采用hash表数据结构,即数组和链表或红黑树1.1 使用put方法时,利用key的hashCode重新计算hash值得出当前元素在数组中的下标。
不见长安在3 个月前
java·hashmap
HashMap的源码学习学习 Java 中 HashMap 的源码是深入理解哈希表数据结构、Java 集合框架设计思想的重要途径。下面从核心原理、关键属性、核心方法实现等方面,带你逐步剖析 JDK 8 及以上版本的 HashMap 源码(注:JDK 8 是 HashMap 实现的重要转折点,引入了红黑树优化,以下分析以 JDK 8 为基础)。
小霞在敲代码3 个月前
java·hashmap
HashMap - 底层原理HashMap底层用的就是hash表数据结构,即数组和链表或红黑树当我们向HashMap中Put元素时,利用key的hashCode重新hash计算出当前对象的元素在数组中的下标
工一木子4 个月前
java·源码·hashmap
HashMap源码深度解析:从“图书馆“到“智能仓库“的进化史面试官:HashMap的底层实现是什么?JDK7和JDK8有什么区别?小李:额…底层是数组+链表?JDK8好像加了红黑树?
一叶难遮天5 个月前
java·设计模式·数组·hashmap·string·android面试·匿名内部类
Android面试指南(八)目录1、Java语言相关1.1、String的intern方法1.2、HashMap的扩容1.3、Java数组不支持泛型