Skip to content

AI+Java中级开发面试题库 ​

生成时间: 2026-05-24 22:14 (Asia/Shanghai) 题目数量: 10道 题目类型: AI方向5道 + Java中级方向5道


本轮 AI+Java中级开发面试题库(带答案) ​

【面试题】1. 请解释大语言模型中的"幻觉"现象,在实际项目中如何有效降低幻觉? ​

【标准答案】幻觉是指模型生成看似合理但实际错误或虚构的内容。主要原因包括训练数据噪声、模型过度泛化、缺乏事实校验。降低幻觉的实用方法:第一,RAG检索增强,用真实知识库约束生成;第二,提示词中明确要求"不知道就说不知道";第三,温度参数调低(如0.3),减少随机性;第四,后处理校验层,用规则或小模型做事实核查;第五,Few-shot示例引导模型输出风格。生产环境必须有人工审核或自动校验机制,不能完全信任生成内容。

【面试题】2. HashMap在多线程环境下会出现什么问题?ConcurrentHashMap是如何解决的? ​

【标准答案】HashMap多线程问题:第一,JDK1.7扩容时可能死循环(链表环);第二,数据丢失,多个线程同时put覆盖;第三,size计算不准。ConcurrentHashMap解决方案:JDK1.7用分段锁(Segment数组),每段独立加锁,并发度=Segment数;JDK1.8改用CAS+synchronized锁单个桶节点,粒度更细,并发度更高。核心优化:第一,读操作无锁,volatile保证可见性;第二,写操作只锁当前桶,不影响其他桶;第三,扩容时多线程协同迁移,用sizeCtl控制。面试加分点:能说清CAS自旋失败后升级为synchronized。

【面试题】3. RAG系统中,为什么需要Chunk分割?常见的Chunk策略有哪些,各适用什么场景? ​

【标准答案】Chunk分割是因为大文档直接检索效果差:向量维度固定,长文本语义被稀释,检索精度下降,且超过模型上下文限制。常见策略:第一,固定长度分割(如512 token),简单但可能切断语义;第二,句子/段落分割,语义完整但长度不一;第三,滑动窗口(如50%重叠),保留上下文连续性;第四,语义分割,用模型判断自然断点,质量高但慢;第五,递归分割,按段落→句子→词逐级切分,兼顾结构和粒度。实际选择:短文档用句子分割,长文档用递归分割,问答场景用语义分割。优化点:Chunk加入文档标题、元数据增强检索。

【面试题】4. Spring Boot自动配置原理是什么?如何自定义Starter? ​

【标准答案】自动配置核心:@EnableAutoConfiguration注解通过@Import导入AutoConfigurationImportSelector,扫描所有META-INF/spring.factories或spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,加载预定义配置类。每个配置类用@ConditionalOnXxx注解判断是否生效(如@ConditionalOnClass、@ConditionalOnMissingBean)。自定义Starter步骤:第一,创建autoconfigure模块,写配置类@Configuration + @ConditionalOnClass;第二,写spring.factories文件声明配置类全路径;第三,创建starter模块依赖autoconfigure,用户提供starter依赖即可;第四,可选写配置属性类@ConfigurationProperties绑定yaml配置。面试加分:说清楚spring.factories是SPI机制,Spring Boot 3.x改用imports文件。

【面试题】5. 请解释Prompt Engineering中的"思维链"技术,在什么场景下效果最明显? ​

【标准答案】思维链是让模型"一步步思考"的提示技巧,通过示例或指令引导模型展示推理过程,而非直接给出答案。效果最明显的场景:第一,数学推理、逻辑判断等需要多步推导的任务;第二,复杂问答需要拆解子问题;第三,代码生成需要先分析需求再写代码;第四,任务规划需要分解步骤。使用方法:第一,Few-shot示例中展示推理过程;第二,提示词末尾加"Let's think step by step";第三,要求模型"先分析再回答,给出推理过程"。注意事项:简单问题用CoT反而增加token消耗,大模型(如GPT-4)受益更明显,小模型可能无改善。面试加分:能提到Zero-shot CoT(直接加指令)和Few-shot CoT(给推理示例)的区别。

【面试题】6. MySQL索引失效的常见场景有哪些?如何用EXPLAIN分析SQL执行计划? ​

【标准答案】索引失效常见场景:第一,WHERE条件中对索引列做函数操作(如YEAR(create_time));第二,隐式类型转换(如字符串字段用数字查询);第三,LIKE以%开头('%abc');第四,OR连接非索引列;第五,联合索引不满足最左前缀;第六,索引列参与计算(如age+1=20);第七,NOT IN、NOT EXISTS、<>、IS NULL(部分情况)。EXPLAIN关键字段:type列表示访问类型(const > eq_ref > ref > range > index > ALL,ALL是全表扫描);key列显示实际用到的索引;rows列估算扫描行数;Extra列有"Using index"表示覆盖索引、"Using filesort"需优化。面试加分:能说清索引下推(ICP)和覆盖索引原理。

【面试题】7. Spring AI框架中,如何实现多轮对话的记忆管理?有哪些持久化方案? ​

【标准答案】Spring AI的ChatMemory接口管理对话历史。核心类:InMemoryChatMemory(内存存储,重启丢失)、MessageWindowChatMemory(滑动窗口,保留最近N条)。持久化方案:第一,内存存储(开发测试用);第二,Redis存储(生产推荐),用RedisTemplate序列化消息列表;第三,数据库存储(MySQL/MongoDB),持久化Message实体表;第四,向量数据库存储,将对话转为向量实现语义检索。实现步骤:第一,注入ChatMemory到ChatClient;第二,每次对话调用add()添加消息;第三,历史消息自动拼接到提示词。优化点:控制上下文长度避免超token,用滑动窗口裁剪旧消息,关键信息摘要后替换原始对话。面试加分:能说清Token限制下的记忆裁剪策略。

【面试题】8. JVM垃圾回收中,CMS和G1收集器的核心区别是什么?各适用什么场景? ​

【标准答案】CMS是老年代收集器,目标是低停顿,核心阶段并发标记、并发清除,与用户线程并行。缺点:第一,CPU敏感,并发阶段占用线程;第二,浮动垃圾,并发清除时新产生的垃圾无法回收;第三,内存碎片,标记-清除算法导致。G1是Region化收集器,将堆划分为多个Region,优先回收垃圾多的Region(Garbage First)。核心优势:第一,可预测停顿时间(-XX:MaxGCPauseMillis);第二,无内存碎片,整体标记-整理,局部复制算法;第三,年轻代和老年代动态调整。适用场景:CMS适合老年代较大、追求低延迟的服务端应用;G1适合大堆(>6GB)、需要可控停顿的场景,是JDK9+默认收集器。面试加分:能说清G1的SATB标记和Remembered Set。

【面试题】9. AI Agent开发中,ReAct框架的核心思想是什么?如何设计一个简单的Agent循环? ​

【标准答案】ReAct = Reasoning + Acting,核心思想是让模型交替进行思考和行动,用推理指导动作选择,用动作结果更新推理。循环流程:第一,Thought(模型分析当前状态,规划下一步);第二,Action(调用工具执行具体操作,如搜索、查询API);第三,Observation(获取工具返回结果);第四,继续下一轮Thought。代码实现步骤:第一,定义工具列表(@Tool注解或函数描述);第二,构造System Prompt包含工具描述;第三,循环调用LLM解析Action和ActionInput;第四,执行工具获取Observation;第五,将Observation追加到对话历史,继续调用LLM;第六,直到模型输出Final Answer。LangChain的AgentExecutor或Spring AI的Function Calling封装了此循环。面试加分:能说清如何处理工具调用失败、如何限制循环轮次避免死循环。

【面试题】10. Redis分布式锁的实现方案有哪些?如何解决主从架构下的锁丢失问题? ​

【标准答案】基础方案:SET lock:key value NX PX 30000(原子加锁,NX不存在才设置,PX过期时间),解锁用Lua脚本保证原子性(先判断value是否匹配再DEL)。问题:单机Redis宕机锁丢失。主从架构问题:主节点加锁成功但未同步到从节点时宕机,从节点升级后锁丢失。解决方案:第一,Redlock算法(官方推荐),向多个独立Redis节点同时申请锁,超过半数成功才算获取;第二,Redisson看门狗机制,后台线程续约锁避免过期;第三,等待主从同步完成(WAIT命令),但降低性能。生产建议:追求强一致性用Zookeeper或etcd分布式锁;追求高性能用Redisson+Redlock;避免极端情况(网络分区)可接受小概率失败。面试加分:能说清Redisson的Watchdog自动续约和可重入锁实现。


题目分布统计:

  • AI方向:大模型幻觉、RAG Chunk分割、Prompt思维链、Spring AI记忆管理、ReAct框架(5题)
  • Java中级:HashMap并发、Spring Boot自动配置、MySQL索引、JVM GC、Redis分布式锁(5题)

题目类型覆盖:

  • 技术基础:幻觉原理、HashMap并发、Chunk分割、CMS/G1
  • 架构设计:Spring Boot Starter、Spring AI记忆管理
  • 场景实操:ReAct Agent、Redis分布式锁
  • 性能优化:MySQL索引、JVM GC调优
  • 面试情景:思维链应用场景、Redis锁丢失问题