2025互联网大厂Java后端面试:3-5年经验必问核心考点
HashMap
1. HashMap底层实现原理
- 数据结构:数组+链表+红黑树(JDK8+)
- 项目实战:在分布式Session存储中使用HashMap导致内存溢出,通过引入ConcurrentHashMap和分段锁机制优化
- 踩坑经验:高并发场景下未处理哈希冲突,造成CPU飙升,最终通过调整负载因子和扩容阈值解决
2. HashMap扩容机制
- 原理:当元素数量超过容量*负载因子时触发扩容,采用2倍扩容+重新哈希
- 实战:电商秒杀系统中因频繁扩容导致性能下降,通过预估数据量设置初始容量避免
- 解决方案:使用LinkedHashMap实现LRU缓存,解决扩容带来的性能波动问题
3. HashMap与ConcurrentHashMap区别
- 线程安全:ConcurrentHashMap通过分段锁实现线程安全,HashMap完全不安全
- 并发度:ConcurrentHashMap支持更高并发量,适合多线程环境下的缓存场景
- 应用场景:在日志统计系统中使用ConcurrentHashMap避免数据丢失,而HashMap适用于单线程场景
MyBatis