腾讯 腾讯文档 客户端开发一二面
4.1一面30分钟
项目拷打
- 程序链接的过程
- 简单介绍一下死代码消除的原理
- Clang和GCC的区别
- LLVM源码、GCC源码相关
- X86的汇编想在Mac(ARM)上运行怎么办(Qemu模拟器)
- 不用模拟器怎么整(二进制翻译或者重新编译吧)
- SSA是什么(静态单变量赋值)
- 其他的跟项目相关度比较高就不提
八股
- 排序算法有哪些
- 堆排序时间与空间复杂度
- 堆的原理
- 做一个排行榜,随时都能看到排名前十个(堆)
- 排行榜是稳定的吧,堆合适吗?
- 有没有其他合适的数据结构
4.3二面30分钟
八股盛宴
- 为什么投后台开发
- C++结构体的字节对齐
- 大端小端
- 用代码判断当前机器的大端小端模式
- volatile关键字
- Linux下虚拟内存布局
- C++多态怎么实现的
- 虚函数原理
- C++static使用场景及其效果
- 修饰全局变量时什么时候初始化的
- C++模板特化和偏特化
- extern C的作用和原理
- C++有没有什么通用化的优化方案
- 非递归遍历二叉树口述
- TCP和UDP差异
- TCP中的time wait状态
- Linux的fork用法
- iNode是什么
- 软链接、硬连接
聊一下项目
- LLVM和GCC的差异
- C++并发能力都是系统提供的,GO语言的协程可能是怎么实现的?(没接触过GO,瞎答)
总结
总体回答8成以上吧,场景题回答地都不咋地。全程手撕都没有,我还期待着写写代码。二面之后的清明假期就给我挂了。反问环节了解到对方的业务主要是Web Assembly相关的开发,尝试把移动端的代码进行复用。