hr约的是一天面完三面(如果顺利的话),但是面了两面没消息了,可能凉了。
一面(45min)
- 介绍下项目
- 使用到springcloud,讲一下springcloud原理 讲了用到了部分组件,但是没有了解过原理
- 使用nacos,为什么使用nacos,不使用springcloud
- 使用到netty,netty讲一下,心跳机制讲一下,空轮训讲一下
- 仿dubbo,是否读过dubbo源码,读过哪一部分,dubbo服务发现怎么实现
- 讲一下项目中RPC的原理,使用注解如何实现服务发现,
- springmvc容器与spring容器的区别,@controller是在哪一个容器里面
- 项目中哪里用到了redis,使用了什么数据结构
- leetocde二叉树最大路径和(10分钟要可以实现能运行)
- 讲一下kafka,消费者组订阅关系(这个没回答好)
- 反问
还有一些不记得了,主要全是挖项目,比较深
问了超级多底层东西,感觉netty大坑,随便一个点挖一下就回答不上来了,总结经验,不要给自己挖坑,面试官最后也说,不要被面试官主导着走,比如说你熟悉mysql,就展示出来你擅长的部分,往自己擅长的引(面试官人挺好)
本来以为没有二面了,谁知道过五分钟发二面,通知五分钟后二面
二面(40min)
- 讲一下垃圾回收的方法(不是算法,用在哪里)我就说了标记清除,复制的使用,标记整理不记得了
- 说一下项目的表之间关系,我听成表中有什么列了。。。一对一,一对多
- 场景题:类似于readview之类的实现,不同人在不同场景下查询mysql数据不同结果,可能重名,怎么实现(不会,说加时间戳或者类似readview实现)
- redis string底层实现,
- 用了什么引擎,为什么千万级,这个千万是怎么得到的,肯定有什么计算方式(我说的可能根据b+树层数有关)
- 场景题:如何实现浏览器的前进后退(我回答两个栈,实在蒙蔽了)
- 使用了bitmap,怎么统计(bitcount)怎么统计一个月所有用户的签到情况(遍历)
- 看你了解kafka,使用在项目里主要做什么(消峰以及异步)为什么使用kafka(我没有用,假设场景,我列举了双十一例子)
- 手撕合并k个有序链表(10分钟实现,不用运行)
- 反问
(补充)
- 问一个项目中sql,怎么查询,(两个innerjoin)
- 项目中redis的key具体存储的什么(回答用户id)如果多个场景怎么办?我项目就一个场景使用,不存在这个问题(反正就很细致)
- 流量统计在前端还是后端实现
一面源码,二面场景,我感受到了寒气。。。二面之后就无消息了,不知道结果如何。
面试官人还是挺好的,是我太菜了。
#快手校招#