当前位置: 首页 > 面试经验 >

抖音后端日常一面面经

优质
小牛编辑
64浏览
2024-07-02

抖音后端日常一面面经

1、自我介绍

2、问了简历里第一个项目,介绍了一下功能,自己做了什么,不感兴趣,5分钟(简历里面写了7个项目,估计是看不下去了)开始直接八股

3、键入网址baidu.com到网页显示,都用到了哪些协议:http/https dns tcp ip ,往下MAC网卡什么的没详细说,就说了个网络接口层,应该详细说说的。面试官也没往下问,一下子想不起来

4、DNS解析详细过程:根域名 -> 下一级域名解析服务器 ,重复多次直到取得IP

5、HTTP怎么保障可靠的,没太理解应该从哪个方面答。我说的通过TCP保障可靠性,但是由于TCP是面向流的,所以可能会出现粘包,再通过特殊字符分割或者长度字段解决粘包。后面想了想是不是从状态码之类的?还是不太清楚。

6、知道HTTP3吗,HTTP3怎么保障可靠的:HTTP3底层改用UDP。不太清楚怎么保障的,自己瞎说了一个,UDP是面向报文的,所以即使UDP不可靠,也得实现一个类似TCP的协议,比如一个包确认一次。

7、知道UDP实现TCP的协议名字吗:不知道,真不知道。。。

5、TCP怎么保障可靠传输:重传机制、滑动窗口、流量控制、拥塞控制。自己主动详细说了下几个重传机制、拥塞控制算法

6、linux进程之间哪些通信方式:不太清楚linux的,但是知道windows和操作系统课里面的。管道、消息队列、共享内存、信号量。没说Socket。面试官问了一下,我说Socket好像主要面向的是网络IO,不太清楚

7、事务的隔离级别,经典题目。RURCRRSERIALIZABLE。都能解决什么问题。这块答的乱七八糟的,应该先说明都有哪些问题,列举一下脏读、丢失修改、不可重复读、幻读这几个出现的场景,举个例子。说不可重复读时候还嘴瓢说了新增,面试官问了之后赶紧说是修改。

8、MVCC怎么实现的。Read View加一个log日志,一着急忘了是redo还是undo,说了个redo。面试官说是undo,然后我赶紧说对记错了,undo记录的是每个事务提交之前数据的状态和事务id,用Read View中事务的id和执行顺序查undo就能保障MVCC了。还没说完

9、Mysql默认隔离级别什么,怎么实现的。RR,MVCC。面试官问还有别的吗,我没想起来,他说还有一个Next-Key Lock。我说对忘了,然后主动说了一下几个行级锁。

10、快照读,当前读什么。快照读为了快读不加锁,当前读目标是更新或者新增,需要加锁保障数据不会被修改。这里我没说快照读会使用版本号机制这个事。

11、当前读有哪些语句,我就记得一个FOR UPDATE。后面查了查主动加锁的select也是当前读,学到了。自己又主动补充了一下为什么要加锁。

12、Mysql有哪些索引。按数据结构只说了B+TREE。这里没说HASH,应该主动补充一下innodb不支持HASH这个事的。按功能分有什么前缀、联合、主键、唯一之类的。按存储分是聚簇和不聚簇。

13、聚簇和不聚簇的区别。叶子节点存储的东西不一样,一个是全部的数据,另一个只存了主键和索引列。这里我主动补充了一下,如果一个查询只查询联合索引聚集索引里面的数据,那么这几类索引也可以理解为聚簇索引。

14、为什么选了B+tree而不是BTree。BTree非叶子节点也存数据,一哆嗦说了个空间浪费。B+TREE多了一条叶子节点之间的指针能方便遍历。面试官说没明白空间浪费啥意思,然后才反应过来是IO次数:B的非叶子节点也存数据,而IO的基本单位是PAGE,一次换进一页非叶子节点PAGE,但是其中可能加载了一整页只有几个是有效的。而B+非叶子节点只存索引键,不但可以减少IO次数,还可以直接把索引全部压缩成几页,几次IO就能把整张表的索引加载进来。

15、redis基本数据类型。String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。

16、怎么实现的Zset。跳表。主动讲了一下跳表的思路,上浮机制,查找逻辑二分查找。和Btree的区别。redis选跳表是因为内存,不需要考虑IO时间,而B+Tree能更好地组织数据,以块为单位读写加速查询。没怎么说完就不让我说了

17、一道SQL题:联合索引ABC,查B=xx AND C=xx会不会失效。我说肯定失效,因B+Tree是根据A构建的,这里连A都没用肯定会失效。然后又主动补充了一下最左原则,举了两个失效的情况

18、算法题:没什么难度,就是输入数组转二叉树实在太恶心了,面试官让直接手动建测试用例树,建完了跑了一个测试用例就算过了.

**********************

总体感觉没什么难度,但是因为就准备了五六天还是有很多表述和记忆问题。头疼,是真记不住名字啊。。。

#抖音##字节##面经##日常实习##后端Java#
 类似资料: