Java HashMap 面试怎么答
先说它是基于哈希表的 Map 实现,允许 null 键(一个)和 null 值,非线程安全。接着讲定位:hash 后落到桶,冲突用链表,过长树化。
扩容会触发 rehash。多线程下可能出现数据丢失或死循环等历史问题,并发场景应使用 ConcurrentHashMap 或其他明确策略。
如果简历写过缓存或去重,用你的数据量说明为什么选 HashMap 而不是 TreeMap。机制 + 场景比背源码行号更重要。
先说它是基于哈希表的 Map 实现,允许 null 键(一个)和 null 值,非线程安全。接着讲定位:hash 后落到桶,冲突用链表,过长树化。
扩容会触发 rehash。多线程下可能出现数据丢失或死循环等历史问题,并发场景应使用 ConcurrentHashMap 或其他明确策略。
如果简历写过缓存或去重,用你的数据量说明为什么选 HashMap 而不是 TreeMap。机制 + 场景比背源码行号更重要。