排序
面试题:JDK 1.8 对 HashMap 除了红黑树还进行了哪些改动?
在 JDK 1.8 中,除了引入红黑树(用于优化链表过长时的查询效率)外,HashMap 还进行了多项重要改动,以下是主要的优化点: 1. 哈希函数的优化 改进计算方式:在 JDK 1.7 中,HashMap 的哈希值...
面试题:说说 Java 中 HashMap 的原理?
Java 中的 HashMap 是一种基于哈希表实现的键值对(key-value)映射结构,它允许我们快速地根据键来存储和检索值。下面详细介绍 HashMap 的工作原理: 1. 基本概念 哈希表:HashMap 内部使用数...
面试题:Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?
Java 中的 ConcurrentHashMap 在 1.7 和 1./XMLSchema 版本之间有显著的区别,这些变化主要集中在实现细节、性能优化以及并发控制策略上。以下是 1.7 和 1.8 版本之间的几个关键区别: 数据结构...
面试题:什么是 Hash 碰撞?怎么解决哈希碰撞?
什么是哈希碰撞? 哈希碰撞是指不同的输入通过哈希函数计算后得到了相同的哈希值的情况。在哈希表(如 Java 中的 HashMap)中,键(Key)首先会被转换成一个哈希码(hashCode),然后这个...
面试题:Java 中的 IdentityHashMap 是什么?
IdentityHashMap 是 Java 中 Map 接口的一个特殊实现,位于 java.util 包中。与传统的 HashMap 不同,IdentityHashMap 在比较键是否相等时使用的是对象的引用(reference)而不是对象的内容,也...
面试题: 为什么 HashMap 在 Java 中扩容时采用 2 的 n 次方倍?
在 Java 的 HashMap 中,扩容时采用 2 的 n 次方倍 的设计是出于 性能优化 和 算法效率 的考虑,主要基于以下几个核心原因: 1. 索引计算的高效性:位运算替代取模 索引计算公式: HashMap 通过...
面试题:使用 HashMap 时,有哪些提升性能的技巧?
在使用 HashMap 时,为了提升性能可以采取多种策略和技巧。以下是一些关键点: 1. 初始化容量(Initial Capacity) 合理设置初始容量:HashMap 的容量是哈希表的桶数。如果预先知道将要存储多少...
面试题:数组和链表在 Java 中的区别是什么?
数组和链表是两种基础的数据结构,在 Java 中它们有着不同的特性和使用场景。以下是数组和链表的主要区别: 1. 数据存储方式 数组:在内存中是连续存储的,这意味着每个元素都紧挨着前一个元素...
面试题:Java 中 HashMap 的扩容机制是怎样的?
在 Java 中,HashMap 的扩容机制是为了在键值对数量增加时,动态调整数组容量以减少哈希冲突并保持高效的查询和插入性能。以下是其核心原理和流程的详细解析: 1. 扩容触发条件 当 Ha...
面试题:Java 中的 WeakHashMap 是什么 ?
WeakHashMap 是 Java 中的一种特殊的哈希映射实现,它位于 java.util 包中。与大多数其他映射不同,WeakHashMap 使用弱引用(Weak Reference)作为其键,这意味着在 WeakHashMap 中存储的键-值...