timeline:
- 07-22 投递
- 08-05 笔试
- 08-14 一面
- 08-21 二面
- 08-27 hr面
- 08-29 意向
一面
40m
- 面试官自我介绍
- 自我介绍
- 类的内存布局
- 什么时候对象会有多个虚函数表指针
- 虚函数表一般存在哪里
- 左值右值
- 移动语义
- RAII
- 构造函数或析构函数抛异常会怎么样
- 构造函数可以抛异常,但必须在构造函数中 catch 并释放资源(因为构造函数抛异常不会调析构)
- 析构函数不能抛异常,析构函数中的异常必须在析构函数中处理
- dynamic_cast 的作用
- 如何让一个对象只能在栈上申请
- 函数调用约定
- SOLID 原则
- 用过哪些 STL 容器
- STL 分配器的作用
- vector 扩容会做什么事
- 迭代器失效
- 源文件到可执行文件的过程
- 链接的过程
- 动态链接、got、plt
- 从 OS 视角看程序启动
- 进程地址空间
- OS 怎么管理堆
- 系统调用的过程
- 锁有哪些
- 什么时候会发生死锁
- 怎么定位死锁
- Makefile/CMakeLists 一般怎么写的
- 内存泄漏或 crash 怎么调试
- 线上问题怎么分析
- 反问
二面
50m
- 自我介绍
- 常用的 STL 容器介绍
- vector 和 deque 的区别
- map 和 unordered_map 的区别
- 为什么 map 不用 AVL 树
- 常用的锁有哪些
- 了解无锁编程吗
- 死锁产生的原因
- 怎么排查死锁
- 讲讲 static 关键字
- 静态全局变量和静态局部变量的初始化时机
- 为什么模板一般写在头文件
- 什么是虚拟内存
- 常用的页面置换算法
- 进程、线程、协程
- 协程怎么利用多核
- 用过哪些协程库
- IO 多路复用
- TCP 三握四挥
- 为什么要三次握手,可以两次或者四次吗
- 三次挥手可以吗
- TIME_WAIT 是什么
- 项目拷打
- 实习拷打
- 如何分析函数调用的开销
- 手撕:最大子数组和
- 空间优化
- 时间能优化吗
- 为什么不能二分
- 反问
hr面
20m
- 面试官自我介绍
- 前面的面试体验怎么样
- 自我介绍
- 有考虑读研吗
- 实习转正了吗
- 实习离职原因
- 实习收获
- 实习工作强度
- 为什么投影石
- 职业规划
- 理想的工作状态
- 是哪里人
- 工作城市偏好
- 其他公司的进度怎么样
- 可以提前实习吗
- 毕业论文进展如何
- 期望薪资
- 如果其他公司给你 offer,你会怎么选
- 反问
全部评论
(2) 回帖