腾讯IEG后台开发实习(C++)面经
自我介绍
985本科软件工程,有过一段字节iOS的面试经历(拿到offer但还没实习)。因为本来有读研的打算,所以原本拿到字节实习offer之后就打算不再面试了,但是在字节hr面当天收到腾讯的面试邀请,之后便抱着“多一次面试不亏,被刷就算了”的心态踏上鹅厂面试的路。
面试总结下来的话,我感觉自己可能比较幸运,遇到的问题相比起牛客网内其他人的题,我感觉简单很多。其中考察比较多的是计算机网络,尤其是select/epoll。对比字节、鹅厂两家公司面试体验的话,字节的面试官比较温柔,腾讯的面试官虽然有些压力面,但是一直在引导我回答问题,并给了我一些读研和工作选择上的指点。
其实我觉得能过,很大部分原因也是因为学校名气和我自己绩点还可以的功劳,如果单看计算机技术,我可能一面就gg了。也是在面试的过程中,动摇了自己,重新审视是否读研(我大概是能保研的,大家可以给点建议www)。
腾讯IEG后台开发(共四面)
一面
- 手写:void memcpy(const void* pSrc, void *pDst, unsigned_t length)
- 手写:快排
- C++多态是什么,底层原理是什么(回答了虚函数的底层原理,忘记说静态多态:重载),然后让我拿画图软件画给他看
- TCP三次握手,三次握手中第二次握手的SYN和ACK可不可以分开发(我现在也没搞清楚)
- 知道TCP的连包吗(没听清,大概吧,然后回答不知道,回头查了知道是黏包)
- 知道epoll和select吗(一面没答出来,因为没听过。)
- 说下TCP拥塞控制
- 开放题:为什么井盖一般是圆形的
二面
- C++ struct和class的区别
- 函数调用的过程,其中使用了什么寄存器。为什么函数参数入栈顺序从右到左
- 宏定义和枚举的区别(枚举分不分配内存)
- 宏定义和函数定义的区别
- 堆和栈的区别
- 进程和线程的区别
- 为什么构造函数不能是虚函数,析构函数呢
- new和malloc,delete和free的区别
- select、epoll、epoll的区别
- TCP黏包问题
- 指针和数组的区别
- 函数中参数存放在栈,进栈顺序,为什么这样子
- MySQL存储引擎了解吗(MyISAM和InnoDB)
- B+树了解吗
- 说下预编译(预编译是什么?是预处理吗。之后我说的是预处理)
- 保护头文件被多次包含的方法有哪些?
- STL的map底层原理
- vector底层原理
- 全局变量和局部变量的区别
- 开放题:中国有多少个加油站
三面
- 空类在编译期会做什么,会有什么函数,sizeof是多少
- 如果只给你一个对象的指针,你怎么才能够调用构造函数(没搞懂在问什么,感觉是问构造函数除了new的时候,其他时候能被调用吗?乱回答了一个,回答的是写一个getInstance(),返回new className()的时候就会调用了。)
- 虚继承底层原理
- const char *和 char *const有什么区别,可以修改指针指向的是哪一个
- 类中函数加const修饰有什么用,还是要想修改类成员属性该怎么办
- STL用过哪些,vector如果超过容量底层会怎么处理
- map底层,说下红黑树
- TCP里有个状态叫TIME_WAIT说一下有什么用
- TCP报文头部多少个字节,里面有什么字段
- UDP报文大小有限制吗,发送的时候有顺序吗
- UDP的不可靠说一下
- 说一下TCP黏包,拆包
- 说一下select,poll,epoll
- 说下进程通信机制
- Linux下共享内存怎么使用,说一下之前自己是怎么做的
- linux命令如何查看磁盘内存(回答了du,面试官说这个用来看文件夹的,还有其他吗)
- linux如何查看满足特定查询条件的文件数量(awk)
- linux如何查看运行的进程,如果是特定进程呢(ps -ef | grep)
- 说下gdb怎么调试运行中的程序
- 说下数据库事务ACID
- 说下数据库中锁的机制
- 说下数据局事务隔离级别,MySQL默认级别是什么
- 索引是什么,存储在磁盘吗,哈希索引比起B+树索引的缺点是什么
- 开放题:全国每个月每个人平均剪发次数
- 口述算法题:找出两个链表第一个重复的节点。
- 算法题:两个栈实现一个队列
- 你玩游戏吗
- 平时学习是通过什么渠道?知道TCP/IP协议详解这本书吗
- 职业规划
四面
- 介绍项目,哪个项目收获最多,团队合作中学会了什么
- 说下C++代码重用的机制有哪些
- 你最擅长的科目
- 你玩游戏吗?(回答的王者荣耀),说下王者荣耀的数据同步怎么做到的(答不上)。
- 那给你两天时间回去了解一下王者荣耀的数据同步问题。
- 两天后接着:说下游戏同步机制吧
- 你刚说到的网络延迟,那TCP为什么比UDP慢
- 说下做游戏的时候帧同步和状态同步怎么选择吧
- 考虑情境:一般现在的网络延迟100ms到200ms的样子,也就是说用户屏幕点击事件0.1s之后才会有响应,其实还是会被用户察觉,说下怎么优化?
- 打算读研吗?读研和工作的选择?