字节跳动 抖音直播 后端开发日常实习面经(已oc)
字节跳动的面试整体感觉很好,三轮面试官和hr都nice。面试官对待技术认真严谨,对待候选人又儒雅随和。
一面
一面主要问了数据结构和操作系统。
1.你知道哪些数据结构。
2.如何判断图中是否有环。
3.说说如何维护堆。大根堆和小跟堆的插入删除维护。
4.红黑树的结构。
5.进程的状态。
6.进程和线程的区别。
7.进程间通信的方式,说说共享内存。
8.死锁。产生条件。预防措施。
9.mysql存储引擎。innodb索引如何实现。
10.b+树有多宽。
11.索引的目的。聚簇索引和非聚簇索引。
12.rocketmq的各组件。
13.算法题: 链表两两反转
二面
二面问了点项目,主要还是问了基础
1.聊项目。
2.mysql acid特性。
3.事务隔离级别以及解决的问题。
4.mvcc机制。
5.Java集合。
6.hashmap的底层原理。
7.hashmap非线程安全,1.8改尾插法的原因。
8.Redis使用场景及原因。
9.Redis数据结构以及底层实现。
10.zset底层数据结构使用跳表的原因及优劣。
11.redis的线程模型。介绍几种io模型,多路复用中的三个系统调用。
12.https的建立过程。
13.算法题,数组寻找峰值。
14.场景题,秒杀系统如何设计。
三面
三面主要围绕项目,解决场景问题和基础考察。
三面的知识面涉及比较广,而且比较深入,每个点面试官都在往深挖。三面没记录,凭印象写的。
1.深挖项目。流程,mq的使用,网络波动导致接受消息的顺序变化,支付宝支付接口的回调加密方式。
2.分布式锁的各组实现。
4.设计模式,讲一下单例模式的懒汉方式。
5.aop代理模式的实现。
6.算法题,链表k个一组反转。
7.幻读问题,以及rr级别下是否产生幻读问题。
hr面
畅聊