先说一下基本情况吧,985渣硕,非科班,无实习,船舶与海洋专业(本科是电子),非科班出身其实对自己没有什么信心的,这次居然撑过了三面,着实给了我很大的自信,不管结果怎么样,都很感谢字节爸爸给了我这次机会,秋找第一场面试就是字节爸爸,紧张到爆
面试日期7.4,下午三点,然后面试三连,记忆混乱,顺序有误
一面(50min)
自我介绍
数据库隔离级别以及可能出现的问题
MVCC了解过吗
讲了undolog
数据库常见索引的数据结构
为什么用B+树而不是B树或者其他
缓存淘汰算法有哪些?
lru,lfu,随机等等
让你用redis中的数据结构实现lru,你会选择哪种数据结构?
我刚开始答了map+链表,后来和面试官交流了一番后觉得不妥,然后说了SortedSet,按照缓存最近使用时间排序
你写了熟悉多线程,讲一下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)
ps 我是把开始时间和结束时间分别排序,然后统计,时间复杂的并没有达到要求,面试官最后说可以用动态规划,自己之后想一下
你项目里面有一个秒杀项目,分析一下
二面(60min)
自我介绍
你项目里面有一个仿写的今日头条,讲一下用户登录如何密码安全
加salt,md5,https
讲一下https的原理(我居然把这个忘了,当时想抽自己)
讲一下JVM的垃圾回收算法
新生代,老年代,是怎么划分的
数据库的MVCC了解吗
又说到了undo段
覆盖索引了解吗
乐观锁和悲观锁的区别
乐观锁与MVCC区别是什么?
当时没答上来(我当时觉得这俩就不是一样东西,没法比较)查了应该是乐观锁解决写写冲突,MVCC解决写读冲突
手撕代码:给一个字符串算式,例如“1+2-3*4”,求出结果,要求能够处理非法字符串
写了很久,刚开始报错,调试了很久过了
为刚刚的算法设计一些测试用例
你的项目用到了zookeeper,介绍一下Zookeeper
分布式系统的CAP理论了解过吗
一致性,高可用,分区容错性
这里的一致性和数据库里面的一致性有什么区别?
你有什么问题?
对之前没答上来https耿耿于怀,问了自己还有那方面欠缺
面试官说整体还是很不错的,https那里你下去看一下应该很快就知道了(T_T)
三面(30min)
面试官应该是个leader大佬
自我介绍
你项目有个RPC框架,自己写的还是哪里的项目
自己写的
为什么要选择写一个RPC框架?
讲一下RPC框架有那些组件吧
按照从请求发起到响应梳理了一遍,(动态代理,负载均衡,注册中心,任务分发线程池等等)
现在要给你的RPC添加一个功能,传输文件,可以做到吗?
文件读取到字节流,然后序列化发送
如果是一个很大的文件呢?
我说很大的文件可能不适合用RPC来***独用文件服务器...
zookeeper应用场景
配置管理啥的
配置管理为什么用zookeeper,redis也可以呀
说了zookeeper的监听机制,还可以集群化
你有一个仿写今日头条网站的项目,说一下如果我要发布一个新闻,经历了哪些步骤,净量详细
从输入URL一直讲到springMVC底层balabala
智力题,岛上的人,有红帽子白帽子,各自都不知道自己帽子颜色,知道才能离开,他们知道至少有一个红帽子,问岛上人离开的情况
之前刷面经看到了这个题,然而我并没有在意(再一次抽自己),在面试官的引导下,经过了很长时间了想了出来,感觉智力被爆(T_T)
你还有个头条网站的项目,为什么选择做这个项目
你的职业规划是什么
提问环节
不知为什么我三面只有30min,没有手撕代码(面试官可能觉得我太菜了,不想多说),还有就是可能因为字节go语言用得比较多,所以java相关的题目比较少,数据库问了很多,面试体验极佳,今天(第二天)让填面试问卷
还有,面试前刷面经真的很有用,不要放过每一道题目,许愿,也祝大家面试顺利,offer多多
全部评论
(22) 回帖