记一次超级难的字节跳动校招面经
22届春招,免笔试直接捞的,是我所有面试以来面的最难的一次,极少八股,都是很多实操,实际开发之类的
//更新,部门是飞书企业应用。人都给我问傻了,还是项目实操经验不够多吧
//注,问题顺序可能有出入,部分问题描述可能有问题,因为我也不太记得了,一脸懵逼的瞎扯
//因为每个问题都聊不了几分钟,所以聊了很多问题
一面:60分钟
1:自我介绍。
2:项目介绍。
3:用户中心版本升级怎么保证数据不丢失。//好像是这样问的,有些忘了
4:docker镜像,如果docker镜像崩了,要怎么做回滚保证数据可靠。//说了冷备份热备份的思路。面试官不太满意
5:了解多线程编程是吧,项目用的server是什么?Tomcat怎么用多线程进行管理。//完全不知道
6:Linux,怎么看网卡IO流量,进程IO流量,磁盘IO流量。//只说了top命令,说可能要加参数,具体不太了解。面试官不太满意
7:java用的什么包管理,包冲突了怎么办,用什么插件排查。//maven,不了解
8:依赖包的版本冲突了,怎么解决?//我说优先保证基础服务的依赖的版本,然后去查兼容的版本号。面试官不太满意
9:你写java用的什么ide,idea是吧,用了什么插件,你做过idea插件吗?//jprofile性能优化,也可以看一下dump快照,javap看字节码,没开发过。
10:Redis集群,怎么读取数据?//hash到分片节点上,然后转到相应的机器节点进行读取,以及moved和ask转移。面试官不太满意
11:Redis集群用的什么分布式共识算法?//我想到了分布式锁的,我说redlock,然后说分布式协议,我说raft
12:raft协议,主节点宕机,从节点选举靠什么感知,整个选举流程是什么?//心跳,选举流程
13:redis中的HashTable怎么实现的。//说了两种编码方式的实现
14:Redis底层源码,kv冲突的链式保存的数据的话,扫描性能比较差,要怎么让很多的数据均匀到一片内存块上?//我扯自定义rehash,然后问我redis源码是怎么实现的?
15:redis 数据如果很离散的话,扫描性能比较差,怎么要让数据页均匀到一片内存块上?//同上
16:ORM用的是什么?jdbc和mybatis有什么区别?优化上的。//扯链接管理,配置方便啥的,看起来不太对。面试官不太满意
17:操作系统死锁知道吧,那java的长事务在高并发下会发生死锁,为什么,怎么解决?//顺序申请,部分阻塞导致死锁。说只是一种情况
18:try release知道吧,会有个乐观锁,会造成死锁吗?//没很听明白
19:mysql索引怎么建,像很多主键索引,唯一索引,普通索引之类的,要怎么建?//总算来了八股。覆盖索引,主键索引
20:索引失效的场景。//常规八股
21:什么时候会回表。//聚簇索引和非聚簇索引
22:追问,非聚簇索引一定会回表吗。//补充覆盖索引的情况
23:算法题,树的路径和的变形题。给你15分钟,不需要建tree。10分钟a了,表示没问题。
//总体上答出30%,40%的样子,已经不指望通过了,本菜鸡打扰大家了
反问:
Q:这次面试是我有史以来参加过的最难的一次,为什么这么难?
A:因为是应届校招,不是实习招聘,看你有实习经历,所以问了比较多实际操作相关的东西,想看一下你有没有很多实际项目开发经验
内心:大哥,实习生干了点啥你真的不知道吗。。。
Q:部门业务情况介绍
A:长链路,业务复杂度高这些
内心:累了,毁灭吧人类
Q:对我的评价和建议?
A:建议吧,简历上写的了解多线程编程,应该是实际上有过多线程开发经验,“了解”应该慎用一些
内心:喵喵喵,那我写“看过”?
总结:懵逼树上懵逼果,懵逼树下你和我
#字节跳动##春招##面经##Java##面试流程##招聘进度##校招#