滴滴java一面凉经

自我介绍
问为什么没去实习
项目是实验室和企业的合作项目 我是java主开发

项目遇到什么难点?
不够难,有遇到什么更难的吗?

根据项目引入八股

1. JVM 
(碎碎念我基础八股背过,但调优没实践过,所以简历里刻意没写jvm,下午面了两家都被开局jvm糊脸了)
垃圾回收器有哪些
你们项目用的什么 -答G1
为什么不用CMS和ZGC?
用的老年代回收器是什么?
如果我线上一个服务频繁触发FullGC,你该怎么办?
你说查堆内存,指令是什么,用什么工具?

2. MQ
用的哪个消息队列 -RabbitMQ
为什么不用RocketMQ和Kafka?
RabbitMQ底层消息怎么持久化的?

3. Redis
为什么项目里用到redis,有什么用?
为什么需要分布式锁?没有锁会带来什么问题?
你说数据安全问题,会有什么问题?
我想听的不是这个,就两个业务同时执行会有什么问题?
为什么要用redisson的锁,不直接用基础redis?
你说锁超时,锁超时会有什么问题?
你说看门狗,怎么实现的?
除了大家都知道的setnx,redisson底层实现还用到什么原语?
两个进程申请锁,他们是会被通知吗?
一致性哈希知道吗?

4. MySQL
有哪些引擎,用的什么引擎?区别是什么?
查询一条SQL,内部的过程是什么?
问索引相关。
为什么用B+树不用二叉树、B树?
三大日志知道吗?区别是什么?
undolog会被清理吗?
数据库碎片知道吗,怎么清理?
页分裂知道吗?

5. 分布式
RPC调用知道吗?
什么是SPI?
分布式事务知道吗?知道哪些分布式事务算法?

场景:
如果我要上线一个服务,目标是1wQPS,怎么才能确保它达到1wQPS?
 - 答上线前前测试、上线后监控、做冗余、逐步放流量上压力
你这些方案都不能确保1wQPS,我想知道的是怎么才能确保1wQPS?

算法
“最后来道简单的题吧” SQL题:有5个以上学生的课程

最后
“感谢你的时间”

来点强度低薪资高的厂带我走吧😭 #面经#
全部评论
感觉压力面啊这么难吗
8 回复 分享
发布于 2024-09-24 19:55 山东
场景题确实答的不好,高并发用到的技术一般有:缓存,异步,多线程,负载均衡,限流,CDN等等,最后就是压测
3 回复 分享
发布于 2024-09-27 15:32 广东
我靠,这跟我好像啊,尤其是后面手撕和感谢,我当时就说来个简单题吧,你写好了喊我,应该很快,然后最后就是感谢参加今天的面试,前面回答很不错,但是面完就挂
2 回复 分享
发布于 2024-09-25 17:15 广东
今天面的么
点赞 回复 分享
发布于 2024-09-24 20:39 上海
我想直到你回答上来几个,有的直到但是回答的话我自己认为难回答道点上
点赞 回复 分享
发布于 2024-09-24 21:25 河南
这么难么
点赞 回复 分享
发布于 2024-09-25 12:12 新加坡
滴滴不是三面一起的吗
点赞 回复 分享
发布于 2024-09-25 12:55 江苏
好难,哪个部门啊
点赞 回复 分享
发布于 2024-09-25 13:16 陕西
老哥,有后续没
点赞 回复 分享
发布于 2024-09-25 16:17 湖南
统一回复下关于后续的问题: 滴滴是每面10分钟内出结果 通过的话能一次性面完三面的 本篇是“凉经” 所以我是一面直接挂了 没有后续
点赞 回复 分享
发布于 2024-09-25 17:03 浙江
大佬太强了!
点赞 回复 分享
发布于 2024-09-25 18:25 浙江
你好同学,想试试拼多多吗,需要的话随时联系,祝你收获心仪offer~
点赞 回复 分享
发布于 2024-09-25 22:20 上海
笔试和面试隔多久呀
点赞 回复 分享
发布于 2024-09-26 11:52 江西
这是校招还是日常啊,项目是点评吧
点赞 回复 分享
发布于 2024-09-26 16:53 北京
校招咋都这么难了
点赞 回复 分享
发布于 2024-09-27 09:40 江苏
滴滴是低强度高薪吗
点赞 回复 分享
发布于 2024-09-28 18:30 新加坡
25届还在投日常实习吗
点赞 回复 分享
发布于 2024-10-09 11:14 江西
我是直接让手撸简单版hashmap底层源码
点赞 回复 分享
发布于 2024-10-10 15:41 湖北
我们部门hc多,可以试下
点赞 回复 分享
发布于 2024-10-12 09:45 北京
大佬有没有360面经呀?
点赞 回复 分享
发布于 2024-10-22 16:44 浙江

相关推荐

03-12 20:46
门头沟学院 Java
最可惜的一次,滴滴二面问题基本上都能答上,可惜出了道刚好没做过的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. Redis1. 持久化方式 回答要点: RDB:定时快照,恢复快但可能丢数据。 AOF:追加命令日志,数据更安全但文件较大。 扩展问题: AOF重写机制(压缩命令为最终状态)。 2. 缓存击穿解决方案 回答要点: 空值缓存 + 布隆过滤器过滤无效请求。 互斥锁防止大量请求穿透到数据库。 5. Spring1. 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. **沟通表达**:能否清晰阐述项目亮点(如乐观锁、分布式锁、动态线程池)。  ---
点赞 评论 收藏
分享
评论
52
314
分享

创作者周榜

更多
牛客网
牛客企业服务