字节后端日常实习一二三面经
第一次面字节,总结一下三次面经。
面试的是后端开发日常实习岗,部门是电商商家与运营(上海)。技术栈主要是 Go,所以 Java 问题偏少,集中在操作系统、网络和数据库的问题上,当然算法和项目是必问的。
字节面试官感觉都很忙,面试体验一般,但总体效率很高,一般当天就会给结果。最后三面过了,因为目前在 gap 还没入学,所以 Offer 审核没过。
一面(3月9日,60分钟)
自我介绍
项目讨论
MySQL 有哪些索引?(主键,唯一,普通)
聚类、非聚类索引区别?
联合索引 abc,查 a(走索引),查 b (不走),查 b = 1 and a = 1(走),查 a > 0 and b = 1 (走,但 b 列走不了)
- 最后一个情况,为什么 a 走 b 不走?(最左匹配)
- 你给我详细分析一下 a > 0 and b = 1 查询索引的过程?(我说先匹配 a,再通过叶子节点链表取出数据过滤 b)
- 如果一定要用索引匹配 b,怎么设计这个算法?(二分?想了一下挺麻烦的)
- B+ 树叶子节点是链表怎么二分?(同页上的数据可以二分,页结构中有一个数组)
怎么知道命中索引了没?(explain)
索引失效的情况?(比如条件里带函数,is null 等一些字段,like 左边加了通配符)
like 左边有通配符为什么不匹配?(不知道,感觉和最左匹配差不多)
场景题:字符串左右模糊匹配,比如“我爱中国”匹配“爱中”怎么设计索引?(我说存一个反序,通配符都加后面行不行?面试官说有问题,不过也没往下聊了)
浏览器输入 URL?(八股)
具体到 HTTP 协议?(我说了 TCP 握手, HTTP 协议的报文,面试官感觉我应该懂就直接打断了)
算法:岛屿数量(只要求写核心函数)
反问
总结:大部分时间花在 MySQL 的讨论上,需要在八股文的基础之上深入思考。面试官性格蛮好的,除了提问他也会参与讨论给出他的意见。Java,操作系统,框架,Redis…… 一个没问。
二面(3月11日,80分钟)
- 自我介绍
- 项目讨论(两个项目问了 15 分钟,疯狂轰炸原理、代码细节)
- HTTP 的 keep-alive 和 TCP 的 keep-alive(项目延伸问题,讨论了 10 分钟)
- HTTP 的 keep-alive 多长?(不了解,提到 Nginx 好像是 60s,但理论上应该没限制?)
- HTTP 怎么拆包的?(CRLF 分隔,同时有一个 Content-Length 字段决定 body 长度)
- HTTP 如何传输大文件呢?(分块传输,Transfer-Encoding: chunked)
- 分块传输怎么判断什么时候传输完成呢?(最后一个包是空的)
- 为什么 TCP 会粘包?(TCP 是字节流)
- 怎么解决粘包?(刚才不一直在聊 HTTP 解决粘包吗。。。)
- Java 的 Object 有哪些方法?(记不全会提醒你,然后一个一个问)
- equals() 和 hashcode() 八股
- 哈希冲突如何解决?(开放定址,链接法,再哈希)
- 这些办法的优缺点?
- 负载因子是什么?怎么算?
- clone() 怎么用?引用拷贝深拷贝浅拷贝?
- wait() 和 sleep() 八股
- 场景题:2T 的两个大文件,每一行存储一个字符串,内存只有 1G,找出两个文件中相同的字符串?(哈希,分治)
- 你设计的算法,每一个字符串需要被读几次?
- 复杂度多少?还可以优化吗?
- 算法题:最长有效括号(磨了 20 分钟才写出来,把测试通过就行了)
- 没反问......
总结:网络问得很细,Java 问得偏八股。面试官全程面无表情,但没啥反馈。做算法题的时间有点长,可能着急结束,代码跑通了就行,甚至连代码都没细看,面试体验很一般。
三面(3月18日,60分钟)
- 自我介绍
- epoll 怎么用?(项目相关)
- buffer 用来干嘛?(没说两句被打断,面试官指的是项目中的,开始没理解到)
- 用过哪些 Linux 命令?
- 路由器和交换机区别?
- 链路层是干什么的?有哪些协议?
- IP 地址和 MAC 地址的区别?
- 事务 ACID 知道吧,解释 C 的含义?(说了很久,面试官说基本对,下去再看看)
- 物理地址和虚拟地址区别?
- 怎么转换?
- 为什么要多级页表和快表?
- 缺页中断处理流程?
- 页表项的结构?(页地址、页偏移,各种标记位标识 CPU 特权级、读写权限、是否在内存中......)
- 你提到了 CPU 特权级?怎么转换的?(中断)
- 具体有哪些中断?(外部中断,异常,软中断)
- 数据从网卡到内存的过程描述一下?
- 具体有几次中断?
- CPU 4 个核有共享缓存对吧,怎么保证缓存一致性?(总线锁,MESI)
- 平时怎么学的?
- 没算法
- 反问
总结:可能是之前没问操作系统,终面的操作系统问得特别详细。面试官很严肃,哪怕有一点不对就会被追问,中途有一次口误他显得很不高兴。
#春招##实习##面经##面试流程##Java##校招#
查看19道真题和解析