字节data部门面经(已OC)
8.1 字节一面
上来面试官自己介绍了自己。(太尽职了)
部门的业务,主要做边缘计算,包括基础设施,PaaS,SaaS,FaaS,存储,云原生等。
问项目中遇到哪些问题,如何解决的?
3. 接上题,发送20个包,第三个包丢了,发送端和接收端会怎么做。
4. MySQL有哪些隔离级别。
5. MySQL间隙锁知道吗。(知道是解决“幻读”,不知道原理)
6. 接上题,问“幻读”解决什么问题。
7. 了解哪些分布一致性协议。(Paxos,Raft)
8. 介绍一下Paxos协议。
9. 如果发生脑裂怎么办。(IO hence,忘了)
10.
编程1 mysql,从表中获取学生的名字和选课最多的前五个学生。
course_tbl
| Student | Course |
------------------------
| Alice | Quantum |
| Bob | Calculus |
| Cate | Algebra |
编程2 最长的回文子串。
让我先讲思路,我讲了一个O(n^2)的,面试官说还可以优化。(不会)
力扣上有O(n)的实现,不过用的是manacher算法,我打死都不背。
面试官叫我运行,结果报错了,尴尬的一批,还好面试官说思路是对的。
编程3 go基础语法
上来面试官自己介绍了自己。(太尽职了)
部门的业务,主要做边缘计算,包括基础设施,PaaS,SaaS,FaaS,存储,云原生等。
问项目中遇到哪些问题,如何解决的?
我一想,我还没介绍项目就问如何解决,是不是有些不合适,就果断介绍项目。结果面试官没怎么听,直接又问了一遍刚才的问题。
1. k8s了解吗。
2. TCP是怎么保证可靠性的。3. 接上题,发送20个包,第三个包丢了,发送端和接收端会怎么做。
4. MySQL有哪些隔离级别。
5. MySQL间隙锁知道吗。(知道是解决“幻读”,不知道原理)
6. 接上题,问“幻读”解决什么问题。
7. 了解哪些分布一致性协议。(Paxos,Raft)
8. 介绍一下Paxos协议。
9. 如果发生脑裂怎么办。(IO hence,忘了)
10.
编程1 mysql,从表中获取学生的名字和选课最多的前五个学生。
course_tbl
| Student | Course |
------------------------
| Alice | Quantum |
| Bob | Calculus |
| Cate | Algebra |
编程2 最长的回文子串。
让我先讲思路,我讲了一个O(n^2)的,面试官说还可以优化。(不会)
力扣上有O(n)的实现,不过用的是manacher算法,我打死都不背。
面试官叫我运行,结果报错了,尴尬的一批,还好面试官说思路是对的。
编程3 go基础语法
func main() { defer A{ fmt.Println("defer1") }() defer B{ fmt.Println("defer2") }() fmt.Println("main") } main()
打印结果是?
main defer2 defer1
func main() { var m map[string]int m["a"] = 1 if v := m["b"]; v != nil { fmt.Println(v) } }上述代码有什么问题?
11. 虚拟内存知道吗?
12. 什么时候会发生缺页中断。
13. 死锁如何避免。
14. 系统什么时候陷入内核态。
反问:
你们部门用什么语言?
你们部门base在哪?
总体感觉良好,不过面试题考sql是我没想到的,下面得好好恶补sql了。
8.3 字节二面
面试官看我简历比较有特点,问了linux 文件描述符1,2,3,-是什么意思。
自我介绍+项目(10min)
针对项目狂问。
1. 你们的项目架构是什么样的。(说了一大堆)
2. hook的原理知道吗。(不知道)
3. 有三种代码覆盖率统计方法,你知道吗?(语句覆盖、判定覆盖,分支覆盖)
面试官看我简历比较有特点,问了linux 文件描述符1,2,3,-是什么意思。
自我介绍+项目(10min)
针对项目狂问。
1. 你们的项目架构是什么样的。(说了一大堆)
2. hook的原理知道吗。(不知道)
3. 有三种代码覆盖率统计方法,你知道吗?(语句覆盖、判定覆盖,分支覆盖)
3.5 代码覆盖率为什么要达到80%
4. MySQL的DoubleWriteBuffer是什么?为什么要关闭?
5. aio的优点和缺点是啥?(优点我知道,缺点。。。)
6. aio是半异步模式还是全异步模式?(???)
7. 网络IO发展历程。(从阻塞IO到reactor模型)
8. 为什么进程OOM后,要kill它?(人傻了半天)
9. 缺页中断一定是发生内存交换吗?(不一定)
10. (实验室)介绍一下纠删码编码。
题目:链表倒数第k个节点。
写完之后,知道太简单了,又问,返回值如何写注释,应该返回哪些标准错误,
把main改成一个接口。。。
反问:
同一面。
这次面试直接把我打回原形,觉得自己确实还有很多不足的地方,是纸老虎。
4. MySQL的DoubleWriteBuffer是什么?为什么要关闭?
5. aio的优点和缺点是啥?(优点我知道,缺点。。。)
6. aio是半异步模式还是全异步模式?(???)
7. 网络IO发展历程。(从阻塞IO到reactor模型)
8. 为什么进程OOM后,要kill它?(人傻了半天)
9. 缺页中断一定是发生内存交换吗?(不一定)
10. (实验室)介绍一下纠删码编码。
题目:链表倒数第k个节点。
写完之后,知道太简单了,又问,返回值如何写注释,应该返回哪些标准错误,
把main改成一个接口。。。
反问:
同一面。
这次面试直接把我打回原形,觉得自己确实还有很多不足的地方,是纸老虎。
8.8 字节三面
上来介绍项目,我叽里呱啦说了一大堆,发现只用了四分钟。
1. 你们的文件系统和别的文件系统(比如AFS)相比有什么区别。
2. 问你们项目一个完整的IO路径是什么样的。
3. 项目中遇到什么难点,怎么解决的?
4. 介绍一下aio模型。
5. 多线程模拟aio和linux原生aio有什么区别。(libeio和libaio)
6. epoll和poll有什么区别。
7. TCP的拥塞控制。
8. 实现一个队列,能够入队,出队,统计最小值。
我的方法是队列queue+map,感觉还可以优化。
9. 红黑树原理是什么。(只记得旋转,平衡,其它都忘记了)
10. 红黑树优势。
11. A,B文件各有50亿条数据,内存无法放下全部数据,问如何快速找到两个文件公共数据。
上来介绍项目,我叽里呱啦说了一大堆,发现只用了四分钟。
1. 你们的文件系统和别的文件系统(比如AFS)相比有什么区别。
2. 问你们项目一个完整的IO路径是什么样的。
3. 项目中遇到什么难点,怎么解决的?
4. 介绍一下aio模型。
5. 多线程模拟aio和linux原生aio有什么区别。(libeio和libaio)
6. epoll和poll有什么区别。
7. TCP的拥塞控制。
8. 实现一个队列,能够入队,出队,统计最小值。
我的方法是队列queue+map,感觉还可以优化。
9. 红黑树原理是什么。(只记得旋转,平衡,其它都忘记了)
10. 红黑树优势。
11. A,B文件各有50亿条数据,内存无法放下全部数据,问如何快速找到两个文件公共数据。
我说用哈希,但是面试官说不对。
12. 你对什么语言比较了解。(C++)
13 new/delete和malloc/free有什么区别。
14 有继承的类,new/delete构造和析构的顺序。
15 什么是多态。
16 你有看过什么开源项目吗?(Ceph)
17 Ceph的CRUSH算法原理是什么。
做题:最长不重复子串。
反问:
你们部门业务场景?
面试多久出结果?(一周)
12. 你对什么语言比较了解。(C++)
13 new/delete和malloc/free有什么区别。
14 有继承的类,new/delete构造和析构的顺序。
15 什么是多态。
16 你有看过什么开源项目吗?(Ceph)
17 Ceph的CRUSH算法原理是什么。
做题:最长不重复子串。
反问:
你们部门业务场景?
面试多久出结果?(一周)
三面感觉还是八股,八股终究还是爸爸,感觉难度并不比二面难。
许愿offer,出必还愿!
帮同学内推:抖音搜索部门,内推码:36WYEDN!