小红书Java后端开发一面面经
《面试题目》
- 自我介绍
- 讲一下之前实习中遇到的比较棘手的问题
- AI 项目整体流程是怎样的,遇到了什么问题,如何解决?
- AI 项目中短期记忆和长期记忆是否都用 Redis 实现?
- 如何判断何时采用短期记忆、何时采用长期记忆?
- 随着时间推移,长期记忆是如何持续维护的?
- 长期记忆中如何判断哪些信息该保留、哪些该精简或剔除?
- 除了召回率阈值,还有其他指标可以用来判断记忆是否该被剔除吗?
- 算法题:快速排序
- 日常是怎样使用 AI 的?有做过 vibe coding 吗?
- 使用 AI 时遇到过哪些比较有代表性的问题?如何解决的?
- 反问:在后端和 AI Agent 方向上有什么学习建议?
《参考解析》
- 短期记忆 vs 长期记忆的取舍:短期记忆通常对应当前会话上下文(如最近几轮对话),生命周期短、检索快,适合承接即时语境;长期记忆用于跨会话保留用户偏好、历史事实等信息,一般需要经过摘要/向量化后持久化存储,检索走相似度召回。判断标准通常是信息的”复用价值”和”时效性”——高频复用、跨会话仍有意义的信息才值得沉淀为长期记忆。
- 长期记忆的剔除策略:常见做法是结合召回率/相关性打分设置阈值,低于阈值的记忆逐步淘汰;此外还可以引入时间衰减因子(越久未被召回权重越低)、访问频次统计、记忆间的冗余去重等多维度指标,而不是单一依赖召回率。
- 快速排序思路:选取一个基准值(pivot),通过一次划分把数组分为小于基准和大于基准两部分,再对两部分递归排序;平均时间复杂度 O(n log n),最坏情况(如已有序数组每次取首元素作 pivot)退化为 O(n²),实际工程中常用随机选取 pivot 或三数取中来规避最坏情况。
- AI 辅助编程的学习建议:面试官给出的建议是持续跟进 agent 领域最前沿研究,理解上下文管理和记忆系统机制,可参考 Claude Code 等开源 agent 架构的设计思路;对候选人而言,具备扎实的 AI 工程经验会成为面试中的加分项。