【面经】字节豆包 后端开发 ByteIntern
时间线:
- 24.11 投递字节某部门,但是没有进行面试
- 25.1.8 被豆包捞简历,加 HR 联系方式,选择 base
- 25.1.20 确定一面时间
- 25.2.17 技术一面 当天过
- 25.2.20 技术二面 催了几次HR 26号通知约三面
- 25.3.3 技术三面 然后不推进了 非常可惜
2.17 豆包上海一面 50min
面试官问的很深,问到不会为止,感觉在挖掘面试者的基础知识储备和思考能力。
不问别的,疯狂拷打线程池和 MySQL
八股
线程池
- 线程池有什么作用?
- 讲解一下线程池对于线程可复用的理解
- 线程创建和销毁的开销会消耗计算机的什么资源?
- 如果你来设计线程池,你会如何设计其数据结构?
- 核心线程是2,最大线程是5,提交了3个长时间任务是怎么执行的?
- 如果是使用线程达到最大线程数之后,任务才进入阻塞队列里面,这样设计和正常的线程池有什么优劣?适合什么业务场景
MySQL
- 联合索引场景题:给一个联合索引,问三条SQL语句哪一个走了索引
- 主键回填场景题:三条SELECT 语句谁执行效率最高,谁最差
算法
求出一个正整数 x 的平方根,需要精确到小数点后 n 位。(二分查找)
反问
- 面试表现?说了一堆车轱辘话说考验基础和思考能力,基础还行,不知道广度如何
- 业务?字节豆包后端在北京和上海有两个团队,北京团队负责中台,靠底层,比较靠近可复用的组件;上海团队负责上层各种业务功能以及安全管理等。
其中关于联合索引有个刁钻的问题
假设有联合索引 (a, b, c) ,如果整张表字段 a 所有内容相同,那么直接从 b 开始查会走索引吗?
2.20 豆包上海二面 60min
项目
吓死我了,差点把我实习经历问穿了。。
算法
和为 0 的子数组(力扣 hot100 里有和为 k 的子数组)
先讲思路,然后写代码写了一堆 bug,面试官后面直接指出来不让我继续调试了
反问
- 建议?都挺好的,就是刚才写代码有点……慢?
3.3 豆包上海三面 65min
算法 45min
数组中最大的第K个元素;下午刚做过,立刻回答堆排序
- 为什么要用最大堆?最小堆为什么不行?
- 描述下建堆过程?
好的,我们来扩展一下:
- 不用建堆方法,空间复杂度O(1) ,时间复杂度尽量小,还有别的思路吗? 一开始我答桶排,他说还有吗?最后提示了我快排
然后直接开始按这种思路手撕代码。边界条件太搞了……
基础
- 我们面试过程中,用到了哪些计算机网络协议?用 UDP 不用 TCP 的各种因素?各种深入拷打
- 给你的奶奶讲述一下关系型数据库是什么