一面 35min
纯项目、无八股无算法。问的比较深,简历上写的实现的功能问了个遍,基本上就是让我一步一步说清楚每个功能的具体实现逻辑,需要对自己的项目很熟悉。比如让我说登录的逻辑,需要从请求发到服务端开始,说清楚springmvc的处理流程,然后在到业务处理,包括方法的返回值都要说清楚。
然后根据项目问了少量相关八股,比如数据库表怎么设计的,索引是怎么设计的,索引有什么优缺点;做数据库读写分离时,刚写入主表的数据怎么立刻读出来;布隆过滤器原理、优缺点;数据库中DateTime和TimeStamp的区别。
绝大部分时间都在跟面试官聊项目,面试体验很好,不会的面试官也会引导。面完后10分钟hr打电话约二面。
二面 25min
二面面试官一上来没开摄像头、声音也比较小经常听不清(一度以为是kpi),但后面感觉也还好,回答完问题也会给反馈。
- 为啥两个项目一个用jdk1.8一个用jdk17实际上是因为我做两个项目中间电脑坏过一次。。。然后换了新电脑后重新装Java环境就装了17。然后他问我jdk17有哪些新特性我就不会了
- 说说责任链模式,项目中具体怎么用的
- 还知道什么其他模式?然后问了单例、工厂、代理、构造者、观察者模式的原理和使用场景
- zookeeper了解吗(不会)
- kafka了解吗(只说了kafka在日志处理中常用,项目用的RocketMQ,具体不了解)
- lua脚本怎么用的
- lua脚本为什么是原子性的,怎么实现的(不会)
- 为什么用布隆过滤器,缓存无效值有什么缺点
- sortedSet怎么用的,底层的数据结构是什么
- 汇编学过吗(本科学过但基本忘了,就没问)
- 深度优先和广度优先知道吗,dfs和bfs分别用什么数据结构实现合适
- 介绍下快排,快排用到了什么算法思想
- 递归好不好,有什么缺点(说了可能会爆栈)
- 为什么递归可能会爆栈
- 除了快排还有什么nlogn的算法(说了归并和堆排序)
- 内部排序和外部排序有啥区别
- 外部排序一般用什么算法
- Java中有没有数据结构底层是堆实现的(PriorityQueue)
- sql优化有哪些常用方法
- join的话左边应该是小表还是大表
一二面都无手撕,一面主要是项目,二面问了一些八股但都比较简单。流程很快,年前一两天投的,初五约面,初七一面初九二面。二面面完20分钟就oc了。面试官都挺友善的,总体来说面试体验很好。