字节后端日常实习一二三面面经
字节后端日常实习一二三面
南大硕,投的南京字节后端,三面面下来感觉面试官都很好,有的时候答得不是很好会给你提示引导你。三面的感受就是算法题真的很重要,而且对算法题的要求不能仅限于通过,一面的算法题就是刷过但是没想过是不是有更好的解法结果卡了很久差点没做出来
一面
-
在学校成绩怎么样
-
解释一下unicode编码是什么
-
断点续传的原理是什么(指通过什么样的协议实现这个东西)
-
HTTP1.1里Pipeline扮演了什么样的角色,后面还问了HTTP2了解的多不多(HTTP没怎么准备,面试官决定不问了,开始问TCP相关的东西)
-
TCP的滑动窗口解决了什么样的问题,为什么会有滑动窗口出现,滑动窗口出现前网络是怎么传输的(可能是传一等一?),滑动窗口的基本原理是什么,怎么工作的,什么叫队头阻塞
-
进程间通信的方式
-
Linux下统计一个字符串在文本里出现的次数用什么命令、Linux的sort命令了解吗
-
Github里merge和rebase的区别
-
什么是幻读,什么是不可重复读,RR隔离级别会不会出现幻读,各个隔离级别分别可以解决什么问题
-
之前的实习经历你学到了些啥
算法题
k个有序链表的合并,要求空间o(1)
二面
-
先聊聊了简历上写的项目,包括项目的解决核心思想
-
要进行socket编程,我这边是b服务端,对端是客户端,假设现在a已经建立了TCP连接,a在给b发消息,现在还有个c,c也要给服务端发个包。首先c能建立连接吗,其次c能发出这个包吗,最后这两个包在你那边的状态是怎么样的,能同时连接吗(刚好以前计网做过多进程socket编程,就从实现的角度聊了聊)
-
能讲一下epoll的底层数据结构是怎么实现的吗,为什么在这个场景下红黑树的效率会比二叉平衡树要高,能写一下红黑树的增删的逻辑代码吗(没信心,没写了=_=)
算法题
3Sum
三面
三面应该是个大佬面的,压迫力很强=_=首先上来强调了一下不要切换桌面以免引起一些不必要的误会(虽然我之前也没跳出过桌面,可能是二面和三面之间休息的时候切了一下微信的原因)。
-
自我介绍(有点意外,一面和二面都没要我自我介绍)
-
聊了聊之前没聊过的项目,包括项目使用场景,里面有哪些难点,项目是不是做完了巴拉巴拉
-
实习能实习多久,没准备读博吧,老家是哪,准备去哪上班(喵喵喵?)
-
TCP和UDP的区别,TCP怎么实现可靠的,有的时候既想获得TCP的有效性又想获得UDP的低延迟,会开发基于UDP的可靠传输,你会怎么设计,你们项目里有没有做过序列化机制
-
多线程并发转账问题,一个长连接,5000个客户端,每个客户端每秒会发送一个转账请求,50个线程去处理这个请求,多线程处理时的关键点是什么
算法题
依次报数并且出队,最后剩下的点的编号(数学的解法给忘了,觉得可以用循环链表,面试官不太满意,希望用队列)
打印螺旋数组(前面一题答的不好,这题给限制了14分钟时间)