美团后端暑期一面面经
第二次面试,表现也就比上一次好点,感谢依旧和善的面试官...
- 请先做一个简单的自我介绍。
- 你本科和研究生阶段都主攻网络安全相关方向,为什么选择投递软件开发和AI智能开发工程师岗位?
- 在你的两个项目经历中,分别使用了Java 17和Java 21,请说明在技术选型时如何考虑Java版本的选择?是否应用了Java 21的一些新特性?
- 请介绍一下你基于Spring Boot和Spring AI搭建的工作流编排平台,它主要解决了什么问题?
- 用户从表达诉求到工作流编排的搭建,是完全由AI Agent自动完成的吗?
- 你提到的“DSL”具体是指什么?请简要说明。
- 在环检测中你采用了Kahn算法,是否了解其他方案?选择Kahn算法的原因是什么?请介绍一下该算法的原理。
- 使用variable库管理节点间的变量传递和模板渲染时,是否可能出现读写冲突?如果出现,如何处理?
- 请介绍策略模式和模板方法模式各自的作用,以及它们之间的区别。在你的项目中是如何将两者结合使用的?
- 你将不同节点抽象为NodeExecutor,请说明具体实现方式。是否支持零侵入式的扩展(例如新增节点类型)?
- 请解释重写(Override)与重载(Overload)的区别。
- 关于失败重试机制:当节点执行超时但部分外部调用已成功时,如何进行重试?是否会引入二次消息发送等副作用?如何避免?
- 假设节点内部包含事务性操作:如果事务失败,事务之前的操作如何进行回滚?是否考虑过这类问题?
- 在流式对话场景中,如果用户取消了操作,如何优雅地中断大语言模型的调用并释放资源?
- token usage统计的主要作用是什么?仅用于监控还是另有用途?
- Redis通常用于缓存,你提到将节点运行结果落盘,请问Redis的持久化方式有哪些?RDB和AOF各自的原理和优势是什么?Redis如何实现写时复制?
- 请解释缓存穿透、缓存击穿和缓存雪崩的区别,并说明各自的解决方案。
- 在分库分表设计中,分表键是如何选取的?遇到热点商家导致数据倾斜时,如何处理?
- 在异步发券任务中,使用了RocketMQ。如果消息消费失败,如何保证最终一致性?RocketMQ自身的重试机制是怎样的?如何实现幂等处理?
- 请介绍一下你在线程池配置时使用的关键参数,以及针对不同业务场景的配置策略。
- 请简单介绍一下你获得全国大学生信息安全竞赛一等奖的项目。
- (代码题)请实现反转链表。介绍你的解题思路,并分析迭代法与递归法的时间复杂度和空间复杂度。
查看25道真题和解析