滴滴一二面(发面经攒人品,许愿oc!)

最可惜的一次,滴滴二面问题基本上都能答上,可惜出了道刚好没做过的hot100,然后就挂了,唉...

一面面经

面试问题与知识点总结
1. 项目经历
1. 第一个项目 
技术点:
乐观锁解决超卖问题(如秒杀场景)。
Redis分布式锁实现“一人一单”限制。
扩展问题:
分布式锁的实现细节(如Redisson的底层原理)。
超卖问题的其他解决方案(如令牌桶限流)。
2. 第二个项目 
技术点:
基于Redis发布订阅机制实现线程池参数动态调整。
配置中心设计与定时任务上报线程池状态。
扩展问题:
对比Apollo、Nacos等配置中心的实现差异。
线程池参数动态调整的性能影响(如核心线程数修改的底层逻辑)。
2. Java基础
1. HashMap底层实现 
回答要点:
JDK1.8前:数组+链表;JDK1.8后:链表长度≥8且数组长度≥64时转红黑树。
树化后若节点减少,红黑树会退化为链表(节点数≤6时)。
扩展问题:
树化阈值为8的原因(哈希冲突概率与性能权衡)。
2. ConcurrentHashMap线程安全 
回答要点:
JDK1.7分段锁;JDK1.8后CAS+synchronized锁桶节点。
扩展问题:
ConcurrentHashMap的size()方法实现(分段统计再求和)。
3. 事务ACID与隔离级别 
回答要点:
MySQL默认隔离级别为可重复读(通过MVCC实现)。
脏读、不可重复读、幻读的解决方式。
扩展问题:
MVCC中ReadView的生成逻辑(活跃事务ID列表)。
3. 数据库
1. 索引与B+树 
回答要点:
B+树非叶子节点仅存索引值,叶子节点通过链表串联(支持高效范围查询)。
联合索引需满足最左匹配原则(如索引(a,b,c)需查询条件包含a)。
扩展问题:
索引下推(ICP)优化原理。
2. 红黑树 vs B+树 
回答要点:
红黑树为二叉平衡树,调整频繁;B+树为多路平衡树,层高更低(减少磁盘IO)。
4. Redis
1. 持久化方式 
回答要点:
RDB:定时快照,恢复快但可能丢数据。
AOF:追加命令日志,数据更安全但文件较大。
扩展问题:
AOF重写机制(压缩命令为最终状态)。
2. 缓存击穿解决方案 
回答要点:
空值缓存 + 布隆过滤器过滤无效请求。 
互斥锁防止大量请求穿透到数据库。
5. Spring
1. IOC与单例模式 
回答要点:
Spring Bean默认单例(通过单例注册表管理)。 
单例的线程安全问题(无状态Bean vs 有状态Bean)。 
6. 算法题
题目:二叉树层序遍历(LeetCode 102)。

二面

---

#### **1. JVM 垃圾回收算法**
- **问题**:  
  解释 JVM 中标记清除、标记整理、标记复制三种垃圾回收算法的原理、优缺点,以及分代回收中新生代和老年代分别使用的算法。
- **扩展追问**:  
  - 为什么新生代使用标记复制算法?  
  - 老年代为何更适合标记整理而非标记清除?  
  - 内存碎片问题在不同算法中的表现?

---

#### **2. ConcurrentHashMap 实现原理**
- **问题**:  
  对比 HashMap 和 ConcurrentHashMap 的线程安全实现,解释分段锁(JDK 1.7)或 CAS + synchronized(JDK 1.8)的底层机制。
- **扩展追问**:  
  - 分段锁如何保证并发安全?  
  - JDK 1.8 中为何放弃分段锁?  
  - ConcurrentHashMap 的 get 操作是否需要加锁?

---

#### **3. 生产者消费者模型实现**
- **问题**:  
  设计一个线程安全的阻塞队列,要求支持多生产者、多消费者,并在队列满/空时阻塞等待。
- **扩展追问**:  
  - 如何通过锁和条件变量(如 `ReentrantLock` + `Condition`)实现?  
  - 为什么不能直接使用 `BlockingQueue`?  
  - 如何处理线程唤醒的“虚假唤醒”问题?

---

#### **4. LRU 缓存设计**
- **问题**:  
  实现一个 LRU 缓存,要求 `get` 和 `put` 操作的时间复杂度为 O(1)。
- **扩展追问**:  
  - 为什么选择哈希表 + 双向链表的结构?  
  - 如何维护链表节点的顺序?  
  - 单链表能否实现?时间复杂度如何变化?

---

#### **5. 算法题:旋转数组的二分查找**
- **问题**:  
  给定一个升序数组经未知次数左旋后的结果(如 `[4,5,6,7,0,1,2]`),设计算法在 O(log n) 时间内找到目标值。
- **扩展追问**:  
  - 如何确定旋转点(分界点)?  
  - 如何处理二分后左右区间的有序性?  
  - 代码实现中的边界条件(如数组完全有序、重复元素)?

---

#### **面试评价方向**
1. **基础深度**:JVM 垃圾回收算法、并发容器的底层实现。  
2. **设计能力**:生产者消费者模型、LRU 缓存的设计思路。  
3. **算法思维**:二分查找变种问题的分析与编码能力。  
4. **沟通表达**:能否清晰阐述项目亮点(如乐观锁、分布式锁、动态线程池)。  

---
全部评论
mark
点赞 回复 分享
发布于 2025-04-27 16:35 湖北
mark
点赞 回复 分享
发布于 2025-04-01 20:22 山西
mark
点赞 回复 分享
发布于 2025-03-27 20:05 重庆
老哥一面结束后 多久通知的二面啊
点赞 回复 分享
发布于 2025-03-17 17:41 黑龙江
mark
点赞 回复 分享
发布于 2025-03-16 12:19 安徽
二面挂得好可惜
点赞 回复 分享
发布于 2025-03-16 10:46 吉林
老哥你是在哪投递的 官网吗
点赞 回复 分享
发布于 2025-03-14 13:40 黑龙江
为什么不能直接使用 `BlockingQueue`?
点赞 回复 分享
发布于 2025-03-13 15:02 广东
滴滴的算法是进他的平台吗?还是在自己本地idea上跑?
点赞 回复 分享
发布于 2025-03-13 14:37 山东
那个部门啊
点赞 回复 分享
发布于 2025-03-13 13:46 安徽
二面开头就开始手撕没撕出来 然后开始压力
点赞 回复 分享
发布于 2025-03-12 22:45 重庆
我也是二面手撕没撕出来挂了,被自己蠢哭了
点赞 回复 分享
发布于 2025-03-12 21:59 江苏
春招吗大佬
点赞 回复 分享
发布于 2025-03-12 21:13 陕西
面试官是不是赵 mj
点赞 回复 分享
发布于 2025-03-12 20:56 湖南

相关推荐

04-23 19:53
已编辑
南开大学 Java
Q: 介绍一下短链接项目A: 简历上换个简化表述念一遍。Q: 介绍详细一点,比如说你做了什么工作啊?说具体是怎么做的?刚才你说的都是结果?A: 创建和跳转,从请求进入说到返回。Q: 用 rocketmq 发送日志,具体是怎么做的?A: 异步发送..... oneway,不要求 ack,日志丢了无所谓。Q: 项目用的是哪个垃圾回收器?A: 不懂,我用的Java17,也许是 G1?(确实是)Q: 你了解哪个垃圾回收器?A: G1,几个月前看的,念了一点点发现忘光了。然后开始讲经典的内存分代垃圾回收。(下来搜发现只有 Parallel/CMS 用的这个)Q: 了解哪些垃圾回收算法?A: 忘了,就记得 parallel 用的那俩。Q: 分库分表怎么分的?实践上怎么做的?短链接似乎用不到分表。A: 讲了一下写和读的时候怎么做的。(我也觉得分表没什么意义,毕竟又不是实际某个场景,判断说会有很多数据 .... 除了多用一个中间件)Q: 限流具体怎么限的?A: 设置了滑动窗口限流。Q: 滑动窗口的原理?A: 只是大概知道,说了一下。Q: 还了解其他的限流算法吗?A: 令牌桶,漏桶。讲了下令牌桶。Q: 说一下Spring的 IOC ?A: 讲了一下宏观上干了什么,有什么用。Q: IOC 底层是什么东西?A: 可能是 map ?存一个类的什么标志比如 hash 值到对象的映射?Q: 三级缓存了解吗?A: 用来处理循环依赖。Q: 循环依赖需要三级缓存吗?还是说三级缓存仅仅是为了解决那个循环依赖?A: 不懂。念叨了一下三层都是什么。或许还能当缓存?Q: 我看你了解一些缓存击穿雪崩之类的。实际过程中有遇到过这种情况吗?A: 实际中没,然后开始吟唱缓存击穿雪崩八股。Q: 除了随机 TTL 和多级缓存,还有别的方案吗?(key 消失而不是 Redis 宕机)A: MySQL 从库?不行扛不住。或者跟缓存击穿一样用逻辑过期,别让 key 消失。Q: 可以说一下第一个项目具体做了什么吗?A: 类似介绍短链接算法:长度为 n 的数组里放范围在 1~n 的数字,最多出现两次,统计出现两次的数的个数。反问Q: 之后学习的建议基础知识、知识广度深度、表达、对项目要有思考不能只是做了 (感觉是说要么只是实现一个简单功能,要么只是加一个中间件.... 体现不出来思考)。Q: 具体业务面完15分钟挂。月初投的现在才给面,可能是因为简历不太好。再有就是可能因为内容没有技术深度 所以很多东西都是说 用xxx做yyy,要么就是用了a,然后b,然后c,所以实现了yyy。第一回遇到拷打短链接项目的面试官,可能秒杀问一天审美疲劳了不想问,再有那个只是调AI接口的也没问......这两个很平凡的话,那剩下的点更没技术含量。
查看19道真题和解析
点赞 评论 收藏
分享
04-22 03:21
已编辑
西南石油大学 Java
作为26届的学生, 撞上AI的风口, 肯定是不好受的base地成都, 我从25年七月实习结束之后就一直在投递简历, 期间几乎面完了成都所有的中小厂:九恒星-java开发实习生: 忘了星云联动-前端开发实习生, 忘了海乂知-项目助理: 做军工程序, 断网开发, 没招技术岗, 进去问了三个问题就叫回去等通知鲁大师-Android实习生(九点下班): 面试官水平很高, 但是我当时一问三不知, 前半段在闲聊, 后半段问技术我一直在重复不知道北京万相信息: 一面数据结构, 计算机网络, 简历上的项目, spring的原理, 二面差不多的问题, 挂的原因是(项目经理说你不太稳定, 看起来有点浮躁)晓多科技: 忘了致远互联:一面问: 如果客户那边报来一个问题, 你会如何解决我首先查看用户问题发生的页面, 定位到前端具体的文件, 然后通过浏览器调试工具了解相关问题是页面处理逻辑问题还是网络问题, 后者还需要我落实到后端具体的业务接口去看代码, (然后我结合了我实习期间做的一个接口修复做了说明)如果问题发生了, 你还是只能在无头服务器上定位问题. 你怎么办我会使用jps, jstack等工具, 手动调用用户问题涉及到的接口之后观察jvm堆栈的情况, 了解是哪个线程在处理什么业务时发生了问题, 然后落实到具体的线程对应的具体业务, 当然还是要紧贴业务具体解决二面问: 我们部门大部分工作都是对接用户那边的问题, 然后解决工单, 可能涉及到代码的编写很少, 不知道你能不能接受(我肯定不能接受, 应届生要想保持竞争力怎么可能不写代码)三面HR面试: 通过各种问题考察, 你能不能在客户服务部门当一个技术客服, 我故意问了很多晋升与转部门的话题, hr面挂了成都阳程智启软件:用过什么数据库, mysql与postgresql的区别, 你开发过Agent项目吗, 如果项目的提示词窗口不够大怎么办, 向量数据库在你的Agent项目里面起到了什么作用,  ... 大部分都与AI相关北京北方新宇(对日开发, 日常开发完全断网, 入职之后有日语培训, 薪资水平在6k左右浮动):线下笔试: 考的全是老掉牙的问题, 包括前端, 后端, 数据库, 没有涉及到框架, 全是java语言特性与html原生设计, 数据库最难的也不过左连接与右链接,由于我们三个笔试做得很烂, 面试官直接一面三: union与union all的语义, java并发编程中, 有哪些方法保证线程安全..., 你的优点与缺点是什么, 你在大学期间做过的最印象深刻的是什么, (由于我大部分都直接抢答, 另外两位也一问三不知, 面试通过)滴滴:https://www.nowcoder.com/feed/main/detail/ebfd2aee449046fdb5790209af5550bf?sourceSSR=users虎牙:首先手撕算法, 用String类型实现两数相加,然后Android相关面试题:Android的消息机制;View测量, 布局以及绘制原理,Android BitMap压缩策略,Parcelable和Serializable的作用、效率、区别及选择Android事件分发机制还有其他多如牛毛的线上面试, 其中体验最差的便是广州叶子公司, 线上面试持续一个小时, 从java语言基础到计算机网络, 再到spring, 再到分布式组件, 再到对实习中的项目进行微服务重构. 几乎全部回答上来, 结果告知我在微服务层面的技术深度还不够(这是实习岗位, 转正6k)整体上来说,中小型公司比较喜欢问spring,一二线大厂喜欢问java并发, jvm, 手撕算法,其他几乎都是围绕着实习期间做的项目或者自己写的项目中小厂没有笔试,大厂的笔试都是围绕着牛客网作为笔试平台, 围绕着三方面展开, 分别是单选, 多选以及编程, 一线大厂的编程题会有动态规划(迅雷今年的春招, 三道编程题有两道动态规划), 二三线大厂的编程题会考察三个方面, java原生api, java并发编程, 有的甚至会考sql(比如说汉得信息),对于leetcode, 我没有系统性地刷过. 在这么多面试, 大厂必考手撕算法(主要是围绕简单或者中等难度的题, 这些题往往考察用数据结构优化时间复杂度), 中小厂几乎不考更重要的隐性问题就是你的性格, 中小厂现在极为看中个人性格是否稳定, 他们通常会通过自我介绍, 询问你的职业规划, 为什么从上一家公司离职(必问), 期望薪资如何, 有考公考研的计划吗(直接回答没有).我在25年11月份之后挂掉的面试大部分都是性格问题, 经常在最后一环面试中被评定为性格过于积极, 不适合枯燥的编码工作,
查看21道真题和解析
点赞 评论 收藏
分享
评论
13
66
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务