精选

滴滴面经(三面完入池子,求 OC )

算法+时间线+个人情况

基本情况:双非学院本 + 4 段实习,Java + Go 双线

简历项目:数藏(支付、超时关单、秒杀) + 个人项目(网关、数据冷热分离、热 Key 缓存预热 + CDN 检测 + RocketMQ 百万级消息堆积)

这个是上周四面的,内容有点多,我昨天部门团建完没事的时候总结了一下,感兴趣的同学自取即可

算法题可能有的同学感觉八股问题不大,直接问算法,我直接放到一开始,方便大家看

一面

1.integer a1=100,a2=100,a3=150,a4=150,看看a1是否等于a2,a3是否等于a4 2.说说==和equals,越详细越好 3.说说List,数组和链表区别(局部性原理?简单说说) 4.说说你知道哪些集合是基于链表和数组的? 5.你刚刚说了阻塞队列,我看你简历上好像用了Disruptor替换阻塞队列,为什么要替换阻塞队列?然后如果现在要你设计一个阻塞队列,你会怎么做?(线程安全说到了锁和cas) 6.cas简单说说?(aba问题) 7.锁,你这里说了ReentrantLock和sync,简单说说他们之间的区别 8.你说了cas,Java里面有一个原子自增的你有没有了解过(一开始说原子类,然后面试官说integer,就说了atomicinteger) 9.好了,差不多这个了,你说一下Java里面采用的map,(hashmap,treemap,currenthashmap) 10.你刚刚提到了线程安全,简单说说?然后前面那个List,你知道哪些线程安全的List?cow(Redis写时复制,然后具体Java实现忘记了)和vector(锁) 11.那你先说说hashmap,为什么线程不安全?(一开始想不起来,面试官提示说你先想想扩容,然后你估计差不多了) 12.hashmap扩容策略,缩容,扩容源码想起多少,然后为什么负载因子0.75,默认初始容量(8和16猜16),然后高低16位,为什么默认扩容是2的幂次方 13.currenthashmap实现(1.7和1.8),什么实现线程安全(优先cas,cas不行加sync),面试官问了一下锁的粒度,然后这里为什么不用ReentrantLock? 14.说说线程池,核心参数,工作流程,拒绝策略,拒绝策略如果让你实现,你会使用什么设计模式?(单例+策略模式) 15.接下来说一下MySQL,你先说一下jdbc连接过程?(我说jdbc吗?面试官说对)我说忘记了,能不能说我猜测的过程,面试官说可以? 16.为啥有了jdbc,还需要一些连接数据库的框架?(硬编码,连接池,Druid) 17.MySQL说说事务,然后隔离级别,mvcc? 18.mvcc回答不错,你自己总结过的吗? 19.说说Redis常见数据结构,然后你项目怎么用的? 20.回到刚刚的问题,你保证线程安全用锁,数据库有哪些锁,然后假设你不用Java的机制,无论什么语言,你要访问本地资源,怎么保证操作安全?(cas不用说了,直接说操作系统PV操作) 21.刚刚说了本地锁,你如果是在微服务和分布式的情况下,要怎么实现?(说了etcd,zookeeper,Redis然后Ap和cp) 22.好的,那说说你Redis怎么实现分布式锁(Redisson,追问用了哪些方法,没有get到面试官的点,说了lock和trylock,说了阻塞和非阻塞) 23.Redisson底层锁是怎么实现的(说了一下lua脚本,然后提到项目中限流用滑动窗口,然后Redisson底层用令牌桶) 24.如果我现在不用Redisson,让你实现一个分布式锁,用Redis,你会怎么实现(setnx,线程标记,看门狗) 25.setnx你说到了互斥,你知道他底层的互斥怎么实现吗?(操作系统PV信号量+lua保证原子性) 26.我问完了,你还有什么问题吗? 反问:今天有什么需要提升的点? 感觉你其实那些点都会,但是你回答的时候喜欢自己拓展,如果以后你面其他公司,把关键回答出来就好了,拓展这个交给面试官去做,然后表达简练一点,其他没多大问题,应届里面算不错的了,而且一些不会的点会尝试用自己掌握的点去推,整体来说可以(我以为说其他公司挂了,就没追问了)

二面

滴滴二面 1.lls挺好的,为什么没在那里转正,为什么会愿意去hll?后续如果通过了,愿意来北京吗?(表忠心,说愿意给滴滴卖命,面试官笑了) 2.说一下你项目中的亿级流量过滤怎么做的?(需求+背景+方案,这里吸取教训,说完问面试官需不需要详细说一下,面试官说她还有一些问题,等等) 3.你这里怎么保证用户设备的唯一性?为什么不用ip(设备指纹,Mac信息唯一,然后Mac获取ip的原理简单说了一下) 4.说说布隆过滤器扩容?(渐进式hash+定时任务+Redisson.count方法校验) 5.突然想到,你是怎么写入的(读写开关+flink流写+Pipline) 6.Pipline,为什么不用lua(允许误差,大不了查ES) 7.怎么降低97%ES压力的?然后这个集群价格怎么算的,ES客户端优化SLB,younggc优化,3000次/天降低排查过程(排查过程说了yonggc和fullgc,到这里没注意,又放飞了) 8.你这个线上排查还挺丰富,货拉拉这里三个排查你分别说说(jit逆优化,元空间fullgc,cmsgc频繁,面试官后面说你补充一下后面两个案例的版本) 9.说说g1和cms区别? 10.RPC这里我不问你了,你简单说说一致性哈希怎么实现的,然后优势(1000w数据10节点添加11节点移动6.87%-9.84%数据,原先hash要迁移90%),面试官追问计算过程(GitHub有,直接搜) 11.你Java线上排查挺可以的,你莉莉丝是用go,go怎么排查线上问题(和arthas对比回答) 12.实习问得差不多了,这个项目还挺不错的(数藏),接下来问一下项目吧,先来说说你这个rocketmq百万级消息堆积怎么排查解决的? 13.说一下你项目中除了这个线上问题,负责哪些模块开发,支付,秒杀,网关 14.网关URL动态加密(简单说了一下tls四次握手+项目实现) 15.秒杀我就不问了,你说说你这几个源码修改(Seata,ES,snakeyaml) 16.你多渠道支付实现了,你这里用到了分布式事务,主要做什么?(状态推进+定时任务+上链一致性),你这里幂等是用流水号+状态机?那我大概知道了,不用说了? 17.你大概什么时候开始实习的?你那么多线上问题排查,怎么学习的? 反问 1.表现如何? 线上问题排查确实可以,基础和技术都很扎实,线上排查那个比很多一年经验的都丰富了,不过表达不够简练,后面可以的话慢慢练吧,先去下一面

三面

滴滴三面 1.简历上这两段实习,哪段你收获大一点 2.说一下你这个cdn质量测试工具是干什么的? 3.零拷贝,说说你对于零拷贝的理解?除了中间件,工程中有哪些场景用过?(类似的思想) 4.接下来我们先说一下缓冲池,为什么需要缓冲池,缓冲池有哪些地方用到,具体怎么用(美团leaf,MySQL bufferpool,MongoDB写 Hbase写,消息队列,disruptor) 5.ES你感觉有没有用到(我感觉有,可能和MySQL一样,持久化的时候用到) 6.说说对象池吧,和刚刚一样,为什么需要?(减少对象创建和销毁,类似IOC集中式管理) 7.减少创建和销毁,创建和新建对象有什么损失,大概多少(举例线程池,以及取决于对象大小,类似jvm的老年代大对象晋升思想) 8.简单说说对象池工作流程?操作系统,中间件有哪些实现,他们是怎么做的?(hippo4j,各种数据库连接对象,Disruptor sequence对象,解决内存伪共享,Shardingsphere数据库连接对象,Linux slab分配,操作系统的进程池线程池,文件缓存读写缓冲池,cpp的用户对象池) 9.你实习了快两年,说一下你的感受吧? 10.实习的团队氛围怎么样?最喜欢哪一个? 反问: 1.表现整体来说可以,而且很多点可以看出虽然不知道,但是会利用自己以前学过的知识去推,不过有一些底层的东西可以自己再去挖掘一下 2.大模型日常开发中用得多吗?不多,因为公司要求数据安全,所以一些固定的会尝试大模型,涉及业务还是得自己写 3.如何看待大模型开发,后端程序员有必要掌握吗? 4.如果可以入职,主要负责哪块业务 5.滴滴对于校招生的要求(抗压能力,语言基础),反cue我基本都达到了,一些细节可以继续深入一下

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
答案说明所有
作者分享
🌟择难路,未有疑,四非学院本运气拉满,春招拿下大厂后端
160
快了,xdm,由于这周上班(小加班),写得有点慢,已经抓紧码字了😝
7
在学校的时候忙毕业的事(主要享受学校时光,有点懒),就每天写一点,发现还不如推倒重写,这今天整理一下😁,先预告一手
11
分析一个真人真事,就是我舍友下午去了一个测试的公司,然后那边说实训2个月,后面打一年工抵工资,我舍友来问我需要注意什么,就我看了一下合同,感觉有点像是招转陪,后面上网查了一下确实是,所以在这里警醒大家,找工作千万要注意,不要因为急给骗了😂
13
晓多科技社招一面 周天体测完全身酸痛,就没去上班,请假在家面试,然后上周投了一个社招1~3 年的岗位,就简单面了一下: 1. 自我介绍 2. 询问背景情况,确认社招,然后校招通过可以提前实习 3. 询问了一下实习情况 4. 直接做一道题,就直接给一个白板,原本要用 IDEA 写,但是我 IDEA 启动不了,直接白板写了,题目要求代码实现,包括数据库表设计和设计模式,我数据库表设计直接用 class 实体类代替了,问题不是很大,然后回答单例完成 ID 生成器包装,策略完成不同类型优惠券计算,然后工厂针对优惠券返回,然后加上责任链进行优惠卷相关参数校验,然后我这里 ID 生成说的时候用雪花算法+基因法冗余了用户 ID 号,然后从 ThreadLocal 里面取出用户 ID对比,避免水平越权,然后代码实现工厂、策略,差不多就这些了 /** * 题目1:电商优惠券系统设计 业务场景: 设计一个电商平台的优惠券系统,需满足: 1.支持多种优惠类型(满减、折扣、赠品)。 2.优惠券可叠加使用,但需校验适用范围(如特定商品/用户等级)。 3.需记录优惠券领取、使用记录,并支持运营按“用户领取量”和“券使用率”分析数据。 重点: 1.数据建模(数据表与关系设计)。 2.面向对象设计(要素+设计模式)。 * * */ 5. 算法题:双向链表反转,直接白板手敲 出去差不多半小时 HR 反馈过了,二面
17
下载 APP