北京深势科技 暑期java后端开发 一面 二面

京东 · Java开发工程师 · 一面 · 湖北 · 2026-06

《面试题目》

  1. 一面问题 大概20min左右 无手撕
  2. 简单做一下自我介绍。
  3. 平时Java使用的最低/常用版本是哪个?
  4. 讲一下MySQL相关的优化。
  5. 介绍一下回表的概念。
  6. 联合索引最左前缀匹配原则在实际使用中是如何体现的?
  7. 实习中有没有编写过长SQL?如何看待长SQL?
  8. (7-9上一段实习里面的内容)
  9. 谈谈使用Spring Boot过程中对AOP的使用感受,以及Filter、拦截器相关内容。
  10. 二、二面问题 30min 手撕最小栈
  11. 做一遍自我介绍。
  12. (下面是拷打某王二RAG项目)
  13. 你的RAG项目支持哪些格式的文档解析?
  14. 有没有调研过图片、表格类文件的解析方案?
  15. 文档切块采用的是什么方案,为什么选择该方案?
  16. 项目中使用的向量化模型是什么,选型依据是什么?
  17. 是否使用ES作为向量数据库?是否采用向量+关键字混合检索?
  18. 混合检索的召回率、精确率大概是多少?权重如何设置?
  19. 项目中有没有做Rerank?为什么没有接入?
  20. 做RAG系统是否使用了AI相关框架?为什么选择自研链路而非框架?

(八股) 10. 谈谈你对React Agent的理解、工作流程以及优缺点。 11. 讲解Skills和MCP的区别。 12. 介绍Redis的ZSet数据结构、底层实现。 13. 基于Redis ZSet设计比赛排行榜,要求分数相同时按时间戳排序,如何实现?(场景题 用浮点数 整数是分数 小数点是时间戳) 14. (14-15两个上一段实习的问题 ) 16. 是否了解RocketMQ、Kafka?项目中为何选用RabbitMQ? 17. 更新表中无索引的name字段,MySQL会不会锁表?(场景题) 18. 日常开发使用的JDK版本?谈谈对JDK17虚拟线程的理解。 19. 虚拟线程适合哪些业务场景? 20. 讲解乐观锁和悲观锁的实现、适用场景。 21. 写多读少、并发冲突多的业务,选用悲观锁还是乐观锁? 22. 平时是否使用AI工具辅助开发,使用了哪些工具? 23. 业务是做es洗文献数据的,面试官说有20e量级,也会做skill agent 供内部科研人员使用


《参考解析》

  1. MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。

  2. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  3. Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。

  4. Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。