面试面经 · 美团
【美团】C++后端实习一面(操作系统连环问+网络协议深挖)
【美团】C++后端实习一面
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 美团 |
| 岗位 | C++/Go 后端开发(实习) |
| 轮次 | 技术一面 |
| 时间 | 2025年3月 |
| 面型体感 | 面试官 nice,会根据回答深入追问 |
| 结果 | 通过,24小时内约二面 |
面试题目(按提问顺序)
- 自我介绍
- 不同线程之间共享哪些资源?堆和栈的区别是什么?
- 堆排序的原理?如何在 O(N) 复杂度下建好一个堆?
- 数组和链表的区别?数组地址连续有什么优点?
- 服务端的连接数上限由什么决定?
- 浏览器输入 URL 的整个过程?(从 DNS 到页面渲染)
- TCP 和 UDP 的区别?TCP 如何保证可靠传输?
- TCP 三次握手过程?如果第三次握手丢包会怎样?大量第三次丢包会导致什么问题?如何解决?
- 简历项目:操作系统相关——内存惰性分配是如何实现的?
- 写时复制(Copy-on-Write)是如何实现的?
- 内存淘汰策略有哪些?
- 文件系统的原理?inode 节点是什么?
- 虚拟地址的作用是什么?
- 手撕代码:根据前序和中序遍历构建二叉树,并输出其右视图
面试感受 / 反馈
- 面试官从简历项目切入,聊到操作系统底层实现,追问很深
- 因为一直在看源码,把每个地方用到的具体函数名都讲了,效果不错
- 手撕代码是组合题(构建二叉树 + 右视图),需要灵活应变
- 面试结束后不到 10 分钟就发邮件约二面,流程推进很快
准备建议
- 操作系统是重点:内存管理(分页/分段/淘汰策略)、文件系统、进程/线程
- TCP 协议要准备到"异常场景"层面,不只是三次握手四次挥手
- 手撕代码注意组合题训练,一道题可能考两个知识点的结合
反问示例
- 团队目前的技术方向是什么?
- 实习生有机会参与核心业务开发吗?