面经3月10号

一面 大约30+min

  1. 自我介绍
  2. 你面的是Java工程师,那讲一讲你对于Java哪些方面比较了解吧?
    • 首先列举了集合、IO、JVM、JUC。之后面试官让我讲讲对于JUC里哪些类有了解,于是我讲了ThreadLocal。
    • 对于ThreadLocal,讲到了项目里的应用,拿来做线程隔离并在一次请求中存储信息减少Redis查询。之后讲了ThreadLocal的原理以及内存泄漏的注意,面试官问我如果用线程池的话ThreadLocal存在什么问题?我说没有了解。面试官很温和让我可以去了解下,然后也讲讲这种场景下存在的问题。之后我讲了InheritableThreadLocal的继承性、实现原理还有作用。
  3. 对于Redis了解吗,我看你项目里用了Redis?
    • 讲了Redis的作用和定义,之后深入讲了sds的结构,包括sdshdr5、sdshdr8、sdshdr16的区别,以及redis通过大小对于String这种数据结构的三种优化,提升了redis的速度的原理
    • 之后还讲了讲hash,hash常用的场景以及项目种用hash做了阅读统计
  4. 算法题:找出二叉搜索树中第K大的节点
    • 这题还是很友好的吧,不过需要自己构建二叉树,所以一开始有点懵出了点小插曲,好在后边改对了。面试官说我敲代码很快,他真的很幽默很会缓解气氛哈哈
  5. 之后关于八股文讲了啥有点忘了,讲完八股文之后变讲了讲对于贝壳怎么看以及为什么想去北京
  6. 最后就是反问环节,和面试官聊了很多家常的事情

二面 大约40+min

  1. 自我介绍

    • 这里说了会看一些框架的源码,于是面试官问我看过哪些?我说看了Spring、Netty,此外还看过一点Redis
  2. 你说你看过Spring的源码,你具体看了哪些部分呢?

    • 这里我回答了IOC、AOP
  3. 讲讲Spring的IOC是怎么回事吧?

    • 由于太久没有回顾大部分都忘了, 于是简单讲了讲SpringBean的的生命周期以及refresh()的一些方法
  4. 讲讲循环依赖怎么解决?

    • 这里回答了三级缓存以及,举了A与B循环依赖后Bean的实例化和初始化流程,由于忘了很多讲的不是很详细
  5. 讲讲Redis的基本数据结构吧?

    • 讲了基本的5种和bitmap,之后面试官让我讲讲zset,我说我只记得ziplist以及跳表,面试官问我跳表怎么实现,我也都忘得差不多了,其实本来是简单实现过的。之后跟面试官讲对于sds还记得比较多,要不要给他讲,他说你会那就不用了,突然就笑场了
  6. 算法题:判断链表是否有相交,若有返回相交节点

  7. 讲讲TCP和UDP的区别

  8. 讲讲TCP三次握手和四次挥手的一些细节

    • 这里我连这个都忘得差不多了,但面试官人真的很好,说没关系,没关系。
  9. 之后问我有没有什么想问他的

    • 我问了下部门的技术栈,还有就是大概请教如何更快提升自己的coding能力。面试官都很耐心地跟我讲。之后还闲聊了一些家常的话,面试官真的很亲切很耐心。

大概只记得这些了,全凭记忆,之后便进入了HR面。【HR面挂了之后被重新捞起来了,这里真的感谢内推的小哥,也希望大家能够努力去争取自己想要的offer】

全部评论

相关推荐

评论
点赞
1
分享
牛客网
牛客企业服务