- 1
- 0
- 约3.43千字
- 约 5页
- 2026-08-09 发布于河北
- 举报
拼多多程序员面试真题(含详细接地气答案)
一、Java核心基础(拼多多必考高频)
1、HashMap和TreeMap底层区别、时间复杂度、适用场景
标准答案:
HashMap底层是数组+链表+红黑树,无序存储,基于哈希表实现。JDK1.8之后链表长度超过8、数组容量大于64会转红黑树,查询、插入、删除平均时间复杂度O(1),最坏O(logn)。
TreeMap底层纯红黑树,天然有序(默认key升序),实现了SortedMap接口,所有操作时间复杂度稳定O(logn)。
实际业务使用场景:普通键值存取、高频查询用HashMap;需要根据key排序、区间查询(比如100-1000区间key)用TreeMap。
面试官追问高频点:TreeMap为什么不用平衡二叉树?因为红黑树自旋次数少,插入删除效率更高,适合频繁更新的场景。
2、HashMap多线程环境下有什么问题?怎么解决?
标准答案:
HashMap线程不安全,多线程put操作会出现两个核心问题:一是链表成环,导致get方法死循环CPU飙高;二是数据覆盖,多个线程同时put会丢失数据。JDK1.7主要是扩容死循环,1.8优化了扩容逻辑,但依旧存在数据覆盖问题。
解决方案:
1)简单场景用Collections.synchronizedMap,底层加锁粒度大,性能差;
2)生产主流用ConcurrentHa
您可能关注的文档
最近下载
- 2026年福建省中考数学试卷(含答案及解析).docx
- 21.2.2 二次函数y=ax^2+k的图象和性质(作业)-【上好数学课】2020-2021学年九年级上册同步备课系列(沪科版).docx VIP
- CSCEJX0002-2017检维修能力评定技术规范 第2部分:评定条件.docx VIP
- (高清版)DB51∕T 5026-2001 成都地区建筑地基基础设计规范 .pdf VIP
- 中储粮面试题目及答案.doc VIP
- 2025年秋新人教版三年级上册数学全册同步教案.docx
- 臀位顺产分娩护理查房.pptx VIP
- 盘扣式悬挑脚手架施工方案验收要求.doc VIP
- Q-GDW10370-2016配电网技术导则20170324实施.pdf
- 不锈钢雨棚施工方案.docx VIP
原创力文档

文档评论(0)