先说一下个人的总体情况,西电大三计科,没有实习和太多实践经验(只有自己写的博客什么的),数据结构和算法还行,在滴滴前面过很多次字节,三次三面挂,好未来golang过了,还有许多中小厂就忘了,也没过。
总共也许接近二十次面试经历?滴滴的面试体验在我的个人经历里算是非常不错的,就是事后通知太慢,还是我自己去问的二面....
二面都是三天前的事情了,所以可能忘了很多问题,不过还是给大家一个参考吧
一面
数据库
-
索引(答了聚簇索引和非聚簇索引)
-
非聚簇索引是如何查询的
-
隔离级别
-
RR是如何实现的(INNODB MVVC)
-
在RR级别下能够读到事务ID靠后未提交的修改吗(不会,提示说是锁,最后告诉我加写锁,建议我自己去试一试)
网络
-
UDP,TCP
-
TCP差错控制、流量控制,拥塞控制
-
HTTP(没答出3.0是啥)
-
RESTful
go
-
切片和数组
-
切片的问题
-
go的通信实现
-
channel的底层
-
map的实现
-
哈希过程是什么样子的
-
桶的增加(这个具体还挺复杂的)
-
map线程安全吗?sync.map
-
gc过程
算法
-
反向输出层序遍历(简单)
反问:
-
什么部门?
二面
网络
-
get,post区别,post就不能在URL上附加参数吗(可以,http只是规范,服务端会解析你爱怎么样都行)
-
三次握手如果改成发序列号x,回序列号x+1,再发x+2可以吗?(序列号预测攻击)
数据库
-
索引
-
给了实际问题是并发问题(忘了是啥)
-
如果有很多很多数据,分页显示,如何去做
-
联合索引
-
分布式环境如何加锁(不会)
go
-
sync.map实现
-
map哈希过程(讲错了一点点,忘了可能插入相同键不同值)
-
锁的底层实现是什么(不会,给了个人的猜测)
聊天半小时:
-
你个人常写代码吗?
-
你最主要的代码规范经验是什么?
-
万一公司有很多不合理的规范怎么办?
-
你想学到什么?
-
不符合你的预期怎么办?
-
实习多久
算法
-
二叉树和为n的从上向下路径(简单)
反问:
-
听说go有什么什么的缺陷,你怎么看
-
base地点能选杭州吗(只有北京,可惜了,还是更想杭州离家近)
追加一个问题,多线程处理问题你觉得开多少个线程(开放问题,情景自己考虑)