网易云音乐

全栈开发一面面经

完整信息

36 条问法 · 37 道题

本篇目录

一、面试整体概况

本次面试为全栈工程师岗位技术一面。面试官围绕项目经历、Java技术栈、数据库能力、后端通用技术、AI应用五大维度开展系统性考察,我只具备C/C++底层开发经验与嵌入式安全项目背景。面试末尾有反问环节,最终面试官明确了后续招聘流程与结果反馈周期,整体面试节奏清晰,考察覆盖全面。

二、面试官提问与应答详情

(一)项目背景与个人经历考察

  1. 问题:请做自我介绍,并介绍你最具代表性的项目经历。
  2. 问题:你研究生阶段参与的两个项目,是否属于学校承接的导师项目?
  3. 问题:你的Java技术掌握程度如何,有没有相关的全栈项目实践?

(二)Java技术栈深度考察

  1. 集合框架问题问题:ArrayList和LinkedList的底层实现、适用场景分别是什么?二者是否线程安全?多线程环境下如何保证集合操作的线程安全? 应答详情:候选人准确答出ArrayList基于数组实现,适合随机存取场景;LinkedList基于链表实现,适合频繁增删场景;二者均为线程不安全。但多线程场景下仅能说出通过synchronized加锁实现线程安全,对并发集合类、其他线程安全方案不了解。
  2. JVM相关问题问题:你对JVM有哪些了解?Full GC如何排查?你对G1等垃圾回收器有多少认知? 应答详情:候选人仅知晓JVM具备跨平台、垃圾回收的基础特性,对Full GC排查手段、G1垃圾回收器的工作原理与适用场景等深入知识点了解较少。
  3. 线程池相关问题问题:线程池的核心作用是什么?线程池和队列满员后的拒绝策略有哪些?CPU密集型任务的线程数如何设置?线程池有哪些核心监控指标? 应答详情:候选人仅了解线程池可复用线程、避免频繁创建销毁带来资源消耗的核心优势;对线程池拒绝策略、CPU密集型任务线程数配置逻辑、线程池监控指标均认知不足,坦言自身线程池使用经验不多。

(三)数据库技术考察

  1. 慢查询优化问题问题:单从数据库层面,如何排查并优化SQL慢查询? 应答详情:候选人提出可通过拆分大表、建立索引的方式优化查询速度,对慢查询日志、执行计划分析等标准排查手段提及较少。
  2. 索引相关问题问题:MySQL索引失效的常见场景有哪些?什么是联合索引的最左前缀原则? 应答详情:候选人对索引失效场景仅能笼统表述,无法列举具体场景;对联合索引最左前缀原则不了解,坦言没有实际使用过联合索引。
  3. 高并发存储设计问题问题:面对每日千万级的播放记录,如何设计存储方案支撑高并发写入需求? 应答详情:候选人提出可通过前端控制并发、事务控制、分布式访问、冗余存储的整体思路;但被追问Java层面具体并发控制实现方式时,表示缺乏相关实践经验,无法给出具体落地方案。

(四)后端通用技术考察

  1. 限流与降级问题问题:服务器端限流的主流设计思路有哪些?滑动窗口、令牌桶算法有哪些快捷实现框架?流量高峰下的服务降级是什么概念,有哪些处理措施? 应答详情:候选人仅能说出滑动窗口、令牌桶两种基础限流算法思路;对对应的开源实现框架、服务降级的概念与落地措施均不了解。
  2. 网络链路问题问题:从用户点击播放到歌曲实际播放,底层网络调用的完整流程是怎样的?域名解析的具体查询逻辑是什么? 应答详情:候选人能梳理出域名解析先查本地hosts、再走DNS递归查询的流程,了解TCP/IP、TLS协议的封装交互逻辑,对完整播放链路的表述基本清晰。
  3. 播放加速问题问题:面向全国用户,可通过哪些技术手段优化歌曲播放与下载速度? 应答详情:候选人提出可改用UDP协议、本地缓存歌曲文件两种优化思路。
  4. 线程与协程问题问题:线程和协程的核心区别是什么? 应答详情:候选人说明线程由进程分配资源,协程属于用户态执行单元,对二者的调度差异、性能对比等深入细节了解较少。
  5. CPU飙升排查问题问题:线上服务器CPU飙升,你会如何逐步排查? 应答详情:候选人提出先通过Grafana、Linux Exporter定位高占用进程,再使用Perf、GDB等性能工具定位异常代码点,同时说明不建议直接使用GDB排查线上问题,排查思路清晰。
  6. 监控组件问题问题:Prometheus的指标采集逻辑是什么?它和Grafana之间是如何交互的? 应答详情:候选人知晓Prometheus通过Exporter采集Linux系统指标,了解Grafana负责前端数据展示;对二者之间的数据流转、存储与查询链路的细节认知不深。
  7. 日志与NoSQL问题问题:日志实时采集如何与ELK集成?高并发场景下怎么设计日志防丢失策略?你对NoSQL非关系型存储有多少了解? 应答详情:候选人表示仅使用过已部署好的ELK上报嵌入式系统错误日志,不了解ELK的具体组件构成;当时项目日志量级每秒不足百条,未设计过日志防丢失策略;仅知晓NoSQL的基础概念,无实际使用经验。
  8. 位图权限问题问题:用Java如何实现位图权限管理? 应答详情:候选人表示受C/C++开发习惯影响,计划直接借助Java支持的位运算符,通过基础变量实现位图管理,未结合Java语言特性做适配性设计。

(五)AI技术与应用考察

  1. 问题:近半年你在AI相关技术上有哪些学习积累?LangChain和LangGraph的核心区别是什么? 应答详情:候选人表示手写过简单的Agent规划层,了解LangGraph是LangChain的升级版本,基于状态机编排实现能力优化;对大模型调用外部工具等深入内容不熟悉。
  2. 问题:你日常使用哪些AI生码工具?如何保证生成代码的准确率? 应答详情:候选人日常使用Qoder、ChatGPT、Cursor等工具;认为代码出错多因提示词不够精准,因此会按照规范格式编写详细的提示词,同时会先让AI生成方案,审核通过后再生成代码,以此保障准确率。

三、候选人反问环节与面试官答复

  1. 问题:公司办公地点位于杭州哪个区域? 答复:公司地处杭州滨江区高新区,周边聚集网易、阿里、华为、海康等多家互联网科技企业,是互联网产业高度集中的办公片区。
  2. 问题:公司内部AI工具有没有月度额度限制?是否有强制使用量的要求? 答复:相关细节不便对外透露;内部提供多款不同类型的大模型可供员工选择,AI使用额度并非无上限,但设置得较为充足,完全可以满足日常工作需求。
  3. 问题:面试结果多久会反馈?整体招聘流程一共有几轮? 答复:面试结果将在57个工作日内由HR统一通知;整体面试流程共设置45轮,包含HR面试环节。同时补充说明:本次招聘的全栈工程师岗位由原前端、后端岗位合并而来,更偏向后端方向;当前行业已很少严格拆分前后端岗位,要求开发者能够同时完成服务端与前端的需求交付。

四、面试整体总结

本次面试为典型的互联网全栈岗技术一面,考察范围覆盖基础功底、工程实践、技术广度三大维度。候选人具备扎实的底层开发功底与嵌入式项目经验,技术思路清晰,在问题排查、AI工具使用方面有自身的实践方法;但在Java生态进阶知识点、高并发工程设计、主流中间件深度应用方面存在短板,与岗位全栈、偏后端的定位尚有补充空间。[摸鱼中]

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36

相关公司