去哪儿 AI全栈开发实习生一面
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- Java 为什么需要分代垃圾回收?不分代会怎样?
- G1 相比 CMS 的核心优化是什么?可配置停顿时间如何实现?
- Redis 过期删除策略有哪些?如何平衡惰性删除和定期删除的 CPU、内存开销?
- MCP 客户端和服务端的交互流程是什么?
- 有 100 个 MCP 时,Agent 如何处理工具列表并保证性能?
- 如何用正因子拆分求组合数?
- 如何用差分和前缀和解决上色水管问题?
《参考解析》
分代回收利用“大多数对象生命周期短”的经验,让新生代采用高频、低成本回收,减少每次扫描的对象量。G1 将堆划分为 Region,按回收收益选择区域并通过 MaxGCPauseMillis 设定目标停顿,但目标不是硬保证。Redis 通常组合惰性删除与定期删除,访问时清理已过期键,后台分批抽查,避免一次性遍历阻塞。MCP 客户端可按需发现、缓存并分层暴露工具,避免把所有描述一次塞进上下文。