赢时胜Java后端开发线下面试经验

赢时胜 · Java后端开发 · 群面 · 2026-03

面试题目

面试形式:线下群面,2位面试官(HR+技术)对2位候选人。

主要内容

  1. 实习经历及项目经验深挖。
  2. 技术八股文:
    • 索引失效的常见场景有哪些?
    • synchronized锁的实现原理是什么?
    • 如何理解RAG(检索增强生成)和MCP(模型上下文协议)?
  3. HR环节:考察个人经历及其他综合素质。

参考解析

1. 索引失效的场景

  • 违背最左前缀法则:跳过复合索引的左侧字段查询。
  • 字段使用函数或表达式计算:如 WHERE YEAR(date) = 2025
  • 类型隐式转换:如字符串列未加引号进行比对。
  • 使用 !=<>IS NULLLIKE '%abc' 等操作符。
  • 优化器评估全表扫描代价低于索引查询时。

2. synchronized锁的实现原理

  • 基于JVM层面的重量级锁,底层通过对象的Monitor(监视器)实现。
  • 锁升级过程:无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁,以减少性能开销。
  • 编译后会在代码块前后生成 monitorentermonitorexit 指令。
  • 保证了原子性、可见性和有序性,是可重入锁。

3. 对RAG和MCP的理解

  • RAG(检索增强生成):通过外部检索数据库获取相关文档片段,填充到Prompt中,提升大模型输出内容的准确性和实时性。
  • MCP(模型上下文协议):一种标准化的连接协议,旨在解决AI模型与数据源、开发工具之间孤岛问题,让模型能安全、高效地获取上下文信息。