滴滴二面 C++ 复盘
今天整理了一下滴滴二面的整体流程和高频考察点,明显能感觉到二面和一面的区别还是很大的。
一面更偏基础和项目经历的初步了解,二面则会继续深挖项目细节、工程思维、技术选型、问题定位能力,以及 C++ 核心知识和手撕代码能力。很多题目表面上不难,但如果项目细节不熟、底层原理说不清、回答不够结构化,就很容易卡住。
这篇复盘主要把这次面试中出现的题目整理出来,方便后面继续针对性准备。
题目
- 介绍一下你参加过的竞赛,遇到的最大挑战是什么?
- 竞赛项目中你是如何做技术选型的?为什么选这个方案而不是其他方案?
- 你的项目中是如何保证代码质量和可维护性的?
- 项目中遇到过内存泄漏或崩溃问题吗?你是怎么定位和解决的?
- C++ 虚函数的底层实现原理是什么?虚函数表是如何工作的?
std::move和右值引用的本质是什么?什么时候用移动语义?epoll的 ET 模式下如何正确处理读事件?为什么必须循环读到EAGAIN?- MySQL 事务的四个隔离级别分别解决了什么问题?InnoDB 默认是哪个?
- 手撕:实现一个线程安全的单例模式
- 手撕:实现 LRU 缓存,要求
get和put都是O(1) - 手撕:手写快速排序,并说明平均和最坏时间复杂度
- 你对自己未来 3 年的职业规划是什么?为什么选择滴滴?
- 如果让你重新做竞赛项目,你会改变哪些决策?
更多C++大厂面试八股文都整理在专栏了:
https://www.nowcoder.com/creation/manager/columnDetail/Mq7XWW
总结
这轮面试整体上还是很典型的“大厂二面风格”:项目要能深挖,基础要能讲透,手撕要写得出来,除此之外还会看候选人有没有反思能力和工程意识。
如果后面还要继续准备,建议重点放在这几个方向:项目经历结构化表达、C++ 核心原理、Linux 网络编程、数据库事务隔离、常见手撕题,以及职业规划和项目复盘类问题。
单纯会背八股不太够,最好是把每个问题都和自己的真实项目经验串起来,这样回答会更自然,也更有说服力。
查看22道真题和解析