成都500强外企27届Java全栈实习面经

500强外企 · Java全栈实习 · 两轮 · 成都 · 2026-04

《面试题目》

一、一面(技术面):

  • 死锁怎么排查解决?
  • Redis怎么防止误删别人的锁?
  • 缓存数据库一致性如何保证?
  • SQL优化有哪些手段?
  • Java三大特性分别是什么?
  • MQ消息丢失、重复消费问题如何解决?
  • List和Map的区别?

二、二面(主管面):

  • 侧重于性格、稳定性及处事能力测试,无技术问题。

《参考解析》

  1. 死锁排查:使用jstack命令查看线程堆栈信息,查找Deadlock关键字;预防可通过按固定顺序加锁、设置超时时间及使用重入锁。
  2. Redis防止误删:在释放锁时校验锁的UUID,仅当当前线程ID与锁的持有者一致时才删除,防止因过期导致误删其他线程创建的锁。
  3. 缓存一致性:采用先更新数据库,再删除缓存的策略;可配合延时双删或订阅Binlog实现最终一致性。
  4. SQL优化:包括建立覆盖索引、避免全表扫描、减少使用SELECT *、优化SQL语句中的JOIN操作及分析执行计划(Explain)。
  5. MQ丢消息/重复消费:丢消息可通过生产者确认机制(Confirm)和持久化解决;重复消费通过消费端的幂等性控制,如使用Redis记录唯一流水号。