一面(50min): 自我介绍 项目(20分钟) RocketMQ延时消息(项目用到了)底层怎么实现的(不会) 消息量太大导致读消息延迟时间很长怎么办 项目还有啥优化 讲一讲redis redis为什么快(说了内存、数据结构优化、单线程不用考虑线程安全、io多路复用) 单线程模型有什么缺点,有什么不太适用的场景 redis的大key问题,为什么会产生大key redis怎么设置过期时间,底层是怎么实现的,有哪些过期删除策略 普通索引、(a b c)联合索引,如果只通过b等值查询能走索引吗,如果用a和c呢 线程池主要解决什么问题,有什么优点 线程池的原理、来了一个任务后的处理流程 keepAliveTime对核心线程是否生效,是否能杀死核心线程 那如果我想杀死核心线程应该怎么做(不太会,说了动态地修改核心线程数,下来查资料才知道有核心线程的过期时间参数) 线程安全问题怎么解决 除了加锁还有什么方法,有没有无锁化方法 读写锁听过吗,大概说说 ThreadLocal说说 线程池和ThreadLocal一起用会有什么问题吗(说了内存泄漏,面试官补充了个可能有脏数据) lc53 最大子数组和 反问面试体验很好,是目前为止体验最好的一次。面试官会给很多反馈和补充,所以更像是在和面试官讨论而不是单纯的面试考察。面完第二天约二面二面(1h15min) 自我介绍 实习 项目 布隆过滤器原理(项目用到了) 布隆过滤器有什么问题,为什么不能删除 Object类有哪些方法,都有什么用 hashcode和equal有什么关系 hash冲突有哪些解决方法 wait和notify是用来做什么的 wait和sleep有什么区别 wait带参和不带参有什么区别 如果wait带参,到时间后会做什么 到时之后如果获取不到对象锁不还是得等别的线程notify吗,这和不带参有啥区别 说说垃圾回收 lc32 最长有效括号前面聊得也很好,结果手撕给了道hot100 hard,鼠鼠太菜了没刷过hard。写了整整40分钟才写出来,好在面试官有耐心写了40分钟都没打断我。本来感觉要寄了,结果面完1小时就约了三面(原来出hard就是不想要你这句话对字节不适用)。三面(1h) 自我介绍 实习 项目 什么场景适合分布式事务 微服务了解吗 说说tcp,它有哪些优点在平时的开发中有借鉴意义 说说http java的NIO主要是为了减少线程数,为什么线程数多了会有问题 线程安全版lru 给了道sql,没写出来 入职时间、实习时长、实习地点有没有要求三场面试体验都很好,面试官主要也都是围绕项目来问,从项目中延伸出相关的八股。