字节跳动秋招提前批后端开发一二三面面经(已收到录用意向)
一面
1 自我介绍
2 项目
3 redis分布式锁
4 虚拟内存
5 索引
6 B+ b树为啥比b+树的查询效率低
7 索引优化
8 布隆过滤器
9 四道算法 两道直接说思路 ,后两道敲代码
(1) 数组中其他数出现两次有一个数出现一次找出这个数
(2) 数组中其他数出现两次,有一个数出现一次找出这两个数
(3) 链表 A->B->C->D->E 变成B->A->D->C->E
(4) 单调栈问题 数组中找出右边第一个比这个数大的数
比如数组合[2,10,5,8,1,2,13,12,11]
字节跳动二面(已通过)
1 tcp断开的过程(四次挥手)
2 tcp断开连接时保持2mls的弊端(我答得是优点。。面试官提醒说是要答弊端,弊端?难道是占用了客户端的端口吗)
3 https原理 连接的过程
4对称加密和非对称加密,为啥客户端不直接用服务器端发送过来的公钥加密信息进行传递?
5 请求头 请求体
6 cookie
7 get和post的应用场景
8 堆排序
8 共享锁读写锁 乐观锁悲观锁
9 同步问题
三面
自我介绍
然后连着三个算法:
1给定数组,每个元素代表一个木头的长度,木头可以任意截断,从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)。稀里糊涂地说出来思路,以为错了就没浪费时间写代码,结果面试快结束的时候面试官说我刚才说的思路是对的。。。陷入自责。
2 数据结构设计:时间复杂度O(1)的gemin()最小栈
3 [8,1, 9, 10, 3, 5] 每次获取一个值,不能获取相邻的,求最大值,
比如第一次取出了8,第二次不能取1
4 索引底层是什么?为什么用b+树
5 最左前缀原则
6 redis缓存穿透和缓存击穿
7 堆和栈有什么区别(jvm)
8 智力测试 64匹马 八个赛道 求定位出前四名要进行几次比赛(当然是不可以计时了呀)
9 未来的职业规划