药帮忙java一面面经

药帮忙 · Java开发工程师 · 一面 · 2026-03

《面试题目》

一、项目与综合能力

  1. 介绍下在校项目的核心功能和亮点。
  2. 实习期间优化慢查询接口的完整逻辑。
  3. 项目与实习经历中使用到的设计模式。
  4. 开发中是否使用过AI工具,以及对项目周期的效率提升。
  5. 是否阅读过开源项目源码。
  6. 入职后涉及前端开发是否可以接受。

二、技术八股 7. Java常用数据结构。 8. HashMap底层存放原理及哈希冲突处理。 9. 慢SQL优化手段(explain关键字及其字段含义)。 10. 索引使用注意事项及失效场景。 11. 索引结构(聚簇索引与非聚簇索引)。 12. 回表概念。 13. 主键查询是否会全表扫描。 14. Spring AOP的实现原理。 15. Spring @Transactional事务失效场景。 16. ES与MySQL缓存一致性解决方案。 17. Redis常用数据结构及项目使用场景。


《参考解析》

  1. HashMap原理:数组+链表/红黑树结构,通过key的hashCode进行散列,1.7使用头插法,1.8使用尾插法,且引入红黑树优化O(n)查询效率。
  2. 慢SQL优化:通过Explain分析执行计划,关注type(是否有索引扫描)、key(实际使用的索引)、rows(扫描行数)等。优化策略包括:添加合适索引、避免SELECT *、减少函数计算及隐式转换。
  3. 索引失效场景:对索引字段做运算、使用函数、使用!=或<>、like以%开头、字符串未加引号导致隐式类型转换等。
  4. Spring事务失效:主要包括:方法非public、方法内部自调用(非代理对象调用)、异常被try-catch吞掉、注解在非Spring管理Bean上、rollbackFor未正确配置等。
  5. ES与MySQL一致性:常用方案有:双写模式、基于binlog的异步同步(如使用Canal监听MySQL binlog并写入ES)、消息队列削峰填谷。