投稿者投的字节的提前批,base上海,因为是内推的,所以没有笔试。三面都是一下午搞定的,之间间隔十几分钟。
一面(50min)
- 自我介绍
- 数据库隔离级别以及可能出现的问题
- MVCC了解过吗 讲了undolog
- 数据库常见索引的数据结构
- 为什么用B 树而不是B树或者其他
- 缓存淘汰算法有哪些? lru,lfu,随机等等
- 让你用redis中的数据结构实现lru,你会选择哪种数据结构?
- 你写了熟悉多线程,讲一下CountDownLatch
- 你刚刚讲了AQS,说说原理
- 写一个SQL 两张表,一张Score表,有学生id和分数 另一张表,有学生id,学生名字,学生性别 选出所有女生的成绩,降序排列
- 你刚刚写SQL用到了join,讲一下inner join,out join,left join,right join的区别
- 手撕代码,给出一个包含记录id,登录时间,登出时间点的日志,类似: { {0,0,5}, {1,0,6}, {2,1,3} } ,求出所有时间点的在线人数,要求时间复杂度O(n)
- 你项目里面有一个秒杀项目,分析一下
二面(60min)
- 自我介绍
- 你项目里面有一个仿写的今日头条,讲一下用户登录如何密码安全 加salt,md5,https
- 讲一下https的原理(我居然把这个忘了,当时想抽自己)
- 讲一下JVM的垃圾回收算法
- 新生代,老年代,是怎么划分的
- 数据库的MVCC了解吗 又说到了undo段
- 覆盖索引了解吗
- 乐观锁和悲观锁的区别
- 乐观锁与MVCC区别是什么?
- 手撕代码:给一个字符串算式,例如“1 2-3*4”,求出结果,要求能够处理非法字符串
- 为刚刚的算法设计一些测试用例
- 你的项目用到了zookeeper,介绍一下Zookeeper
- 分布式系统的CAP理论了解过吗 一致性,高可用,分区容错性
- 这里的一致性和数据库里面的一致性有什么区别?
- 你有什么问题?
三面(30min)
面试官应该是个leader大佬
- 自我介绍
- 你项目有个RPC框架,自己写的还是哪里的项目
- 为什么要选择写一个RPC框架?
- 讲一下RPC框架有那些组件吧
- 现在要给你的RPC添加一个功能,传输文件,可以做到吗?
- 如果是一个很大的文件呢? 我说很大的文件可能不适合用RPC来传,单独用文件服务器...
- zookeeper应用场景 配置管理啥的
- 配置管理为什么用zookeeper,redis也可以呀
- 你有一个仿写今日头条网站的项目,说一下如果我要发布一个新闻,经历了哪些步骤,净量详细
- 智力题,岛上的人,有红帽子白帽子,各自都不知道自己帽子颜色,知道才能离开,他们知道至少有一个红帽子,问岛上人离开的情况
总结:不知为什么我三面只有30min,没有手撕代码(面试官可能觉得我太菜了,不想多说),还有就是可能因为字节go语言用得比较多,所以java相关的题目比较少,数据库问了很多,面试体验极佳。