简单几招教你通过字节后端面试!全是面经干货!速看!
一面 35min
1.自我介绍(必考题,要求条理清晰,层次分明,最好提前预演几遍,避免背诵感)
2. http和https的区别
3. 算法:正则匹配
4. 进程内核态用户态
5. 进程通信方式
6. 进程用户态转到内核态的方式
7. 死锁原因、如何避免
8. 64匹马选最快的四匹
9.TCP三次握手
10. mysql一套带走(ACID、并发控制、事务隔离级别、MVCC、undo段)
二面:
要做好准备哦,问题问得比一面要细一点
1. 讲讲项目(把项目摸透,特别是细节方面的问题,注重逻辑感)
2. restful的设计理念、修改和删除资源的时候为什么要把id放在url里而不放在http的参数里
3. 算法题
1)** 凑硬币
2)给一个字符串和一个字符s,已知这个s出现了很多次,随机返回一个s的位置(要求等概率、O(1)的空间复杂度)
4. 贪心和动规有什么区别
5. 四次挥手
6. https中ssl的握手过程、为什么不一直用非对称加密
7. mvcc、乐观锁 详细说说怎么实现的
如果有事务A查询行A 事务B修改行A并commit 此时事务A再修改行A 问此时会发生什么
8. B-tree B+tree区别 为啥用B+不用B 不用红黑 不用avl
9. 快排 堆排评价(时空复杂度 最优 最差 是否稳定)
10. next-key lock
11. 有索引key(a,b,c),问b > 5 and a = 1 order by c能不能用到索引 为什么不能 数据在B+树里怎么存的
12. 内存的缺页中断、页面置换算法
13. 进程的通信方式
14. 事务ACID、隔离级别
15. 什么是虚拟内存 如何使用
16. 操作系统大礼包(linux的对象池、内存、写时拷贝)
三面:
这里问的问题挺多,不过都不会深问
1. C++(const和define区别、智能指针、vector和list的迭代器失效及原因等)
2. 操作系统(虚拟内存、链接)
3. 计算机网络(tcp、http、粘包)
4. redis
四面:
1. 聊项目和竞赛
2. 之前暴露的问题会问你现在学会了没有(主要是考察你的求知欲以及自学能力)
3. 一个数据包,从发出到接收经历了什么