网易云音乐全栈一面:JavaScript、排序与 RAG
本场面试题
- 垃圾回收、堆栈与新生代老生代怎样联系?
- 同步执行、任务与微任务的关系是什么?
- 插入排序怎样维护有序前缀,并检查稳定性与复杂度?
- 解释 RAG 时,哪些环节必须连起来?
- Hybrid RAG 中的混合检索通常解决什么问题?
- Agentic RAG 的动态性体现在哪里?
- 被问写过哪些 Skill,应怎样给出具体回答?
面经与参考答法
问题选自作者自述的面试记录。以下短答用于备面讲解,不代表作者当场作答;仅选录可核实的教学范围,未覆盖的原帖子问不补写。原帖标题明确面试日期为2026-10-14;正文自述网易互联网—网易云音乐。
(1)垃圾回收、堆栈与新生代老生代怎样联系?
可达性回收从根出发判断仍可访问的对象,不能到达的对象才是回收候选。调用栈描述执行上下文,堆与分代属于具体引擎的内存实现;不能断言所有原始值固定在栈、所有对象都按同一规则晋升。年轻代与老年代采用的算法和触发条件须结合引擎版本说明。
(2)同步执行、任务与微任务的关系是什么?
同步代码在当前执行栈推进,任务和微任务由宿主按事件循环规则调度。一次任务执行后会在规定检查点清空微任务,再可能进入渲染机会或后续任务;同步代码不是另一种等待队列。Promise回调与定时器属于不同调度入口,具体API及运行环境要分清。
(3)插入排序怎样维护有序前缀,并检查稳定性与复杂度?
从第二项起保存当前值,把左侧有序前缀中大于它的元素逐个右移,再放回空位。只移动严格大于的元素可保留相等元素的相对次序。常见原地实现最坏时间O(n²)、额外空间O(1);先复制输入的教学版本另占O(n)空间。用空数组、单元素、逆序和重复值检查边界。原帖还列有快速、冒泡、归并、选择和桶排序,其余实现本组未覆盖。
(4)解释 RAG 时,哪些环节必须连起来?
离线解析和索引、在线召回与重排、上下文组装、生成及引用核验要形成可观测链路。分别检查召回是否包含答案证据、生成是否忠实、引用是否支持结论,并测量失败、延迟与成本。RAG并不保证无幻觉。
(5)Hybrid RAG 中的混合检索通常解决什么问题?
稀疏检索擅长精确词、编号或专有名词,稠密向量擅长语义近似;将多路候选融合再重排,以代表性问题评估覆盖和噪声。不同实现的分数不可不经处理直接比较,增加召回路数也不必然提高最终回答质量。
(6)Agentic RAG 的动态性体现在哪里?
让受约束的策略根据查询和已有证据决定是否检索、改写、补充检索或结束,而不只是每次固定检索一次。动态路径仍需预算、权限、证据校验和终止条件。原文c-rag只给缩写,未明确全称,不猜成特定论文或框架;对应子问待核、不绑定。
(7)被问写过哪些 Skill,应怎样给出具体回答?
逐个说明真实任务、触发范围、输入输出、流程、需要的工具与权限,以及验证成功和处理失败的方法。区分团队已有内容与本人贡献;未写过的Skill不当作经历,也不把一段通用提示直接称为已验证的可复用流程。