企业简介:DiDi Global Inc.(滴滴全球股份有限公司)是全球卓越的移动出行科技平台,在亚太、拉美、非洲等市场提供网约车、出租车召车、代驾、顺风车等多元化出行服务,并运营车服、外卖、货运、金融业务。
面经目录:
①滴滴后端开发工程师面经
②滴滴运营中台-后端研发实习生面经
③滴滴golang面经
④投递入口、面经、内推传送门
01
一面:
自我介绍
算法
1.二叉树的层序遍历
实习项目
简历项目
1.如何利用MySQL + Redis实现的好友功能?
2.为什么要结合Redis实现?
3.如果用户数量过多,考虑怎么去优化?去设计存储?
4.expire 过期机制如何实现的?
5.过期机制的存贮数据结构是什么?
6.如何实现的定期删除策略?
7.目前的定期删除策略有哪些不足?如何去优化?
其他
1.有没有用过C++,Golang?对比一下他们和Java的优缺点?
2.为什么一直写博客?
3. 还有一些其他技术问题想不起来了
反问
1.部门的业务?(国际化)
2.部门的技术栈?(GoLang)
二面:
自我介绍
算法
1.最大子数组和
2.同一道题,要求可以打印出路径
简历项目
1.介绍一下项目中各个模块的实现?
2.项目中如何解决的超卖和限制一人一单?
3.Redis实现分布式锁,释放锁包含读取锁变量值、判断锁变量值和删除锁变量4.三个操作,如何保证他们原子性执行?
5.好友功能如何实现的?
6.千万级的用户量,如何优化好友功能?
7.了解哪些分布式缓存?
8.大概介绍一下这个缓存框架?
9. 底层采用哪种数据结构进行存储?
10.解释一下什么是渐进式 rehash?
11.渐进式 rehash 扩容机制如何实现的?
MySQL
1.MySQL 支持哪些存储引擎?
2. MyISAM 和 InnoDB 的区别有哪些?
3.实际场景中,自己如何选择使用MyISAM存储引擎还是 InnoDB存储引擎,又或者说自己没有考虑过这个问题,直接用的默认?
计网
1.TCP和UDP的区别?
2.为什么音视频传输使用UDP协议?
操作系统
1.线程,协程,进程的区别?
2.如何理解协程不被操作系统内核管理,而完全是由程序控制?
其他
1.Java和Golang的各自优缺点?
反问
1.部门的业务?
2.部门的技术栈?
三面:
自我介绍
算法
1.LRU 缓存
Redis
1.Sorted set底层实现原理?
2.Sorted set底层为什么采用2种数据结构(压缩列表+跳表)实现?
3.Redis渐进式rehash原理?
4.Bitmap底层数据结构是什么?Bitmap底层实现原理?
5. 一个Redis字符串可以表示多少位的bitmap?
6.跳跃表为什么不用平衡树这些数据结构实现?
7.GEO 底层采用的哪种数据结构?
8.GEO 如何存贮经纬度?GEOHash编码方法讲一下?
简历项目
1.为什么考虑用Redis实现签到功能?签到数据如何存储的?
2.为什么考虑用GEO实现附近的人功能?
3.如何使用MySQL实现附近的人功能?
4.分布式锁如何实现?
5.如果获得分布式锁的机器宕机了,如何解决死锁问题?
6.Feed流功能如何实现的?
分布式事务
1.对分布式事务了解多少?
2.有哪些实现分布式事务的方法?
MySQL
1.什么是覆盖索引?
2.为什么索引结构默认使用B+Tree?
3.MySQL主从复制流程和原理?
4.说一下MySQL 的四种隔离级别?
其他
1.什么是字符串HashCode算法?
2.考虑自己去设计实现一个HashCode算法?
反问
1.部门的业务?
2.部门的技术栈?
02
一面:
1.自我介绍
2.复盘笔试题写的抢红包代码
3.线程的状态有哪几种,分别是什么含义
4.new String[]{"a", "B"},这段语句创建了几个对象?
5.你对锁了解得怎么样?
6.看看你的项目,打开了本科时候写的一个会议室相关的项目,问了下怎么防止多线程情况下对同一个会议室的重复预定
7.反问环节
8.无算法题
二面:
1.自我介绍
2.询问了我刚投稿的一篇联邦学习相关论文,大概和面试官讨论了15分钟左右。
3.给了一道股票买卖的题目,按照可重复买卖用dp写的(大概花了5分钟),但是面试官又让输出购买的时间和卖出的时间,卡了大概5分钟。
4.一周能上班几天,大概什么时候能到岗?
5.反问环节
03
滴滴golang面经
一面:
自我介绍环节
闲谈三分钟
1.git的提交代码流程
2.go channel有缓冲区和无缓冲区还了解其他类似的吗
3.互斥锁,读写锁应用什么场景
4.waitegroup的使用
5.go的map的结构
6.map里能不能存空数据,为什么
7.map初始化的new、make区别
8.redis数据类型了解哪些,zset使用场景,zset底层
9.为什么redis里用跳表不用搜索平衡树
10.redis数据怎么设置过期时间,原理是什么,让你来设计过期机制你会怎么设计
11.MySQL普通索引的数据结构(没太明白,面试官提醒了个二叉树,瞬间明白应该是B+树和其他结构进行对比)
12.平衡二叉树和主键hash的关系(不明白,不理解,说了自己没了解过这方面)
二面:
1.自我介绍
2.mysql方面
正常八股(懒得写了)
3.redis方面
正常八股(懒得写了)
4.寻找数组只出现一次的元素
+
求职传送门