面经3月10号
一面 大约30+min
- 自我介绍
-
你面的是Java工程师,那讲一讲你对于Java哪些方面比较了解吧?
- 首先列举了集合、IO、JVM、JUC。之后面试官让我讲讲对于JUC里哪些类有了解,于是我讲了ThreadLocal。
- 对于ThreadLocal,讲到了项目里的应用,拿来做线程隔离并在一次请求中存储信息减少Redis查询。之后讲了ThreadLocal的原理以及内存泄漏的注意,面试官问我如果用线程池的话ThreadLocal存在什么问题?我说没有了解。面试官很温和让我可以去了解下,然后也讲讲这种场景下存在的问题。之后我讲了InheritableThreadLocal的继承性、实现原理还有作用。
- 对于Redis了解吗,我看你项目里用了Redis?
-
算法题:找出二叉搜索树中第K大的节点
- 这题还是很友好的吧,不过需要自己构建二叉树,所以一开始有点懵出了点小插曲,好在后边改对了。面试官说我敲代码很快,他真的很幽默很会缓解气氛哈哈
- 之后关于八股文讲了啥有点忘了,讲完八股文之后变讲了讲对于贝壳怎么看以及为什么想去北京
- 最后就是反问环节,和面试官聊了很多家常的事情
二面 大约40+min
-
自我介绍
- 这里说了会看一些框架的源码,于是面试官问我看过哪些?我说看了Spring、Netty,此外还看过一点Redis
-
你说你看过Spring的源码,你具体看了哪些部分呢?
- 这里我回答了IOC、AOP
-
讲讲Spring的IOC是怎么回事吧?
- 由于太久没有回顾大部分都忘了, 于是简单讲了讲SpringBean的的生命周期以及refresh()的一些方法
-
讲讲循环依赖怎么解决?
- 这里回答了三级缓存以及,举了A与B循环依赖后Bean的实例化和初始化流程,由于忘了很多讲的不是很详细
-
讲讲Redis的基本数据结构吧?
- 讲了基本的5种和bitmap,之后面试官让我讲讲zset,我说我只记得ziplist以及跳表,面试官问我跳表怎么实现,我也都忘得差不多了,其实本来是简单实现过的。之后跟面试官讲对于sds还记得比较多,要不要给他讲,他说你会那就不用了,突然就笑场了
-
讲讲TCP和UDP的区别
-
讲讲TCP三次握手和四次挥手的一些细节
- 这里我连这个都忘得差不多了,但面试官人真的很好,说没关系,没关系。
-
之后问我有没有什么想问他的
- 我问了下部门的技术栈,还有就是大概请教如何更快提升自己的coding能力。面试官都很耐心地跟我讲。之后还闲聊了一些家常的话,面试官真的很亲切很耐心。
大概只记得这些了,全凭记忆,之后便进入了HR面。【HR面挂了之后被重新捞起来了,这里真的感谢内推的小哥,也希望大家能够努力去争取自己想要的offer】