深势科技 java 一面面经

深势科技 · AI算法工程师 · 一面 · 黑龙江 · 2026-06

《面试题目》

自我介绍

MySQL

  1. 讲一下 MySQL 的存储引擎。
  2. InnoDB 和 MyISAM 有什么区别?
  3. 讲一下 MVCC。
  4. MVCC 是为了解决幻读吗?
  5. 你在学习 MySQL 的过程中,觉得哪一部分比较难?
  6. 如果出现慢 SQL,你会从哪些方面排查?
  7. explain 里你重点看哪些字段?
  8. 慢 SQL 一直慢和偶尔慢,处理思路有什么不同?
  9. 偶尔慢的 SQL 你觉得可能是什么原因?
  10. Java 并发 / JUC
  11. 你用过 JUC 下面哪些类?
  12. 你项目中哪里用到了线程池?
  13. 为什么检索场景要用异步?
  14. 你项目中 MCP 用来做什么?
  15. MCP 的主要作用是什么?
  16. MCP 还有哪些功能?
  17. MCP 有哪些实现方式?
  18. 你们项目用的是哪种 MCP 接入方式?
  19. 讲一下你项目里的三层记忆架构。
  20. 上下文记忆、checkpoint、长期记忆分别是什么?
  21. 为什么长期记忆采用“文件为本,数据库只做索引”的设计?
  22. 你项目里的分库分表是怎么设计的?
  23. 你说的自定义分片算法具体是什么?
  24. 分布式 ID 是自己设计的吗?
  25. 你用的分布式 ID 方案是什么?
  26. 算法 / Coding
  27. 零钱兑换 dp 忘了怎么写
  28. 换题:三数之和。

秒过约二面


《参考解析》

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

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

  3. 算法题解析:常用算法思路:动态规划(状态转移方程,自底向上);BFS/DFS(图遍历,BFS找最短路,DFS回溯);双指针(有序数组去重/两数之和);滑动窗口(子串/子数组问题);二分查找(有序或单调性)。时间复杂度分析:关注最坏情况和平均情况。