首页 > 字节跳动后端实习一二三面面经(已HR面)
头像
Arktische
编辑于 2021-01-06 22:06
+ 关注

字节跳动后端实习一二三面面经(已HR面) 内部员工回复

基本情况

21届非科班本科生,12.22投了一次字节不幸挂了。以前都没有为找工作准备过,因此大概只准备了一个月算法和面经的样子。

12.30 一面

问的全是基础,项目碰都没碰,感觉ez
1. 介绍自己,介绍项目和实习经历
2. 详细说一下面向对象几大特性,任挑一个你熟悉的语言讲下多态如何实现
3. 讲讲虚拟内存
4. 缺页中断?OS会干什么?linux系统怎么看缺页中断
5. 那发现运行着tcp服务器的系统发生大量缺页中断,可能的原因是什么?
6. 三次握手详细过程?SYN攻击底层原理是什么?(要答到内核的半连接队列)
7. 四次挥手TIME_WAIT状态作用?为什么是2MSL?MSL和TTL什么关系?
8. 服务器大量TIME_WAIT状态,危害是什么?
9. KV的数据结构,要求内部有序(我:B+/红黑/堆+哈希表)
10. 讲下url输入浏览器后发生的事(我:详细到了网络五层的协议HTTP/DNS/ARP/TCP/IP+OS tcp协议栈+web server逻辑)
11. HTTP方法?各种状态码意义?
12. 数据库了解吗?说下mysql的索引结构?B+和红黑对比下?
13. 非聚簇索引存了啥?如何避免回表?联合索引底层原理+最左匹配原则?
14. WAL知道吗?哪个log用了这个?那顺便介绍下三大log?
15. 一条sql执行很慢,怎么查?分析可能的原因?
16. 来写个sql,找出用户数最多的topk个城市(我sql写的很少,只了解理论,所以硬着头皮乱写了一下)
17. IO模型了解吗?讲下select/poll/epoll?各自优劣、底层实现、使用场景?
18. 来写个题:
判断一个二叉树是否为完全二叉树

反馈

面试官评价基础挺好,然后强调了基础的重要性。然后说我算法没问题,就是算法的描述能力还得加强。sql实际写的不熟,要多练练

12.31 二面

都说字节二面最难,面试官确实喜欢从一个点挖很深直到答不上来为止
1. 介绍自己/实习/项目,同上
2. 把你的项目数据流动链路描述一下,越详细越好(内核重定向驱动->local server->LVS主备->nginx集群->某分布式文件系统)
3. 会golang是吧?说一下golang GC(吸取了上次教训,我倒背如流:三色+CMS+写屏障)
4. STW是哪些阶段发生的?rescan-stack是为了什么?了解新版本go对写屏障的改进吗?
5. 两次GC周期重叠会引发什么问题,GC触发机制是什么样的?
6. 讲下golang的slice和string底层,空slice和nil的slice区别?能直接append吗?扩容?
7. 知道go的伪抢占式调度吗?新版本?举个goroutine泄漏的例子?
8. 看你项目里面自己造了个go协程池,怎么实现的?协程池上限确定的原则是什么?
9. go的调度模型?(GPM)
10. 项目部署了吗?并发量多少?怎么优化的?(nginx大概2w4-3w并发,8G4核,不是http协议,local server在网关上1G内存2ARM核有4000多并发)
11. 你知道的影响server并发的内核参数有哪些?TCP选项有哪些?描述一下
12. 平时写go,怎么调试的?有做过test和benchmark吗?有分析过性能吗?描述一下 (pprof/go test中的test和benchmark)
13. 项目中遇到过什么问题没有?如何排查定位的?如何解决的?
14. 你提到了优雅关闭tcp连接,说一下shutdown和close?
15. LVS原理?LVS为什么主备?多主用过吗?为什么不直接让nginx挂在外面呢?
16. redis了解吗,项目中怎么用的?跳表数据结构?持久化AOF和RDB?
17. 知道零拷贝吗?RDB在备份的时候会阻塞吗?为什么?
18. 把上一面没写对的sql再写一遍?
19. mysql聚簇索引?联合索引?为什么会有最左匹配原则?
20. B+树每个节点到底存的是什么?
21. 来写个题:
求两个班成绩的最小差值
我最开始想到直接排个序,然后双指针遍历O(nlogn)
面试官希望我写个桶的方法,后来交流得出用桶需要单独标记是哪个班的,面试官说时间不多了就先用双指针吧。5min不到写完A了

反馈

面试官没评价就下线了。因为算法题比较简单,但我又没写最优解,所以我以为我又要挂了,但居然过了,可能是别的问题答得还行

1.4三面

三面感觉就很轻松了,跟背书一样
1. 自我介绍,项目,实习
2. 面试官:既然二面问了你那么多go,那我问个c++(出了个c++继承虚函数的笔试题,很绕,基础不牢,卒)
3. 面试官:没事,讲讲web服务器常用技术?
4. 讲讲HTTP协议?
5. 三次握手四次挥手?
6. URL输入浏览器,底层发生了什么?
7. 讲讲TCP UDP/讲讲拥塞控制
8. 讲讲IO模型?
9. DNS描述一下详细过程
10. 讲讲进程和线程
11. 讲讲数据库的索引?
12. mysql的三大log?
13. 讲讲B+树?
14. 最近在学什么,来讲讲你学到的东西,讲原理不要画饼(讲了分布式2PC 3PC raft)
15. 写个题:
给一个数组,代表一个数字比如[3,1,4,5,2]代表31452,让你删除k个数字,使得留下来的值最大,返回这个最大值
就贪心完事,很快A了
反馈
作为一个本科生基础还挺不错,算法没问题,不过mysql这块看起来你写的不多,可以多练练

1.4HR面

老常规了,不赘述

总结

没做好的还是算法和一些知识的细节。算法应该多追求最优而不是写出来就完事。对于除算法外的问题不能局限于背面经,应该多思考其中细节和变式。比如tcp协议就存在很多异常状况,很多时候面试官喜欢问这样的场景问题。最后希望能尽快offer

关于答案

有小伙伴私信问我要答案,其实这些问题很多是面经八股文拓展了一下的结果,我就不去做全面的答案解析了(懒)。单独的不清楚的可以私信我,我回复一般都很快的😁

更多模拟面试

全部评论

(23) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐