面试面经 · 微信事业群WXG
【微信事业群】【后端开发】【一面】Go协程+网络编程+C++基础三连问
【微信事业群】【后端开发】【一面】
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 腾讯微信事业群(WXG) |
| 岗位 | 后端开发 |
| 轮次 | 技术一面 |
| 时间 | 2025年秋招 |
| 面试时长 | 约50分钟 |
| 面型体感 | 基础拷问全面,Go和C++都会问,节奏适中 |
| 结果 | 通过 |
面试题目(按提问顺序)
- 自我介绍
- 项目介绍,重点讲一个你觉得最有挑战的项目
- 项目中用了什么技术栈?为什么选 Go 而不是 Java?
- Go 的 goroutine 和线程有什么区别?goroutine 调度模型(GMP)了解吗?
- Go 的 channel 底层是怎么实现的?有缓冲和无缓冲有什么区别?
- Go 的
sync.Mutex和sync.RWMutex的区别?什么场景用哪个? - C++ 智能指针
shared_ptr、unique_ptr、weak_ptr的区别?循环引用怎么解决? - C++ 的
new/delete和malloc/free有什么区别? - TCP 三次握手过程?为什么需要三次而不是两次?
- TCP 拥塞控制算法有哪些?慢启动、拥塞避免、快重传、快恢复分别是什么?
- epoll 的工作原理?ET 和 LT 模式区别?为什么 ET 模式性能更高?
- 进程间通信有哪些方式?各自适用什么场景?
- 手撕代码:实现一个生产者-消费者模型(用 Go 或 C++)
面试感受 / 反馈
- 微信面试对语言基础要求很高,Go 和 C++ 都会深入问
- GMP 调度模型是必考题,要能讲清楚 G、M、P 各自是什么以及调度流程
- 网络编程(TCP、epoll)是微信的强项方向,务必准备扎实
- 手撕代码难度不大,但要求代码规范、考虑边界
准备建议
- Go 方向:GMP 模型、channel 实现、GC 机制(三色标记法)、sync 包源码
- C++ 方向:智能指针、RAII、虚函数、STL 容器底层
- 网络编程:TCP/IP 协议栈、epoll、select/poll 对比
- 手撕:生产者-消费者模型、LRU Cache、单例模式(线程安全)
反问示例
- 团队负责微信哪个模块的后台?
- 微信后台主要用什么语言?(答:C++ 为主,部分服务用 Go)
- 新人培养机制是怎样的?