hashmap

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