腾讯ieg春招实习面经分享(后台开发C++)
春招过程中也看了不少牛客大佬的资料,也分享一下自己腾讯ieg的面试经过。其中与项目相关的内容由于不具有参考性故都省略了。希望能帮到大家。
投递的岗位是腾讯IEG C++后台开发岗
在一些题目下打上了个人的参考答案,!仅供参考仅供参考!。很多答案没有在互联网搜过或查过书,凭着感觉写了一些点,难免有缺漏或错误,欢迎大家指出!
加油加油!
腾讯一面
手撕二分查找
- 写了闭区间方法
- 改成左闭右开会影响结果吗
n=nums.size()
不减一。 不会,因为除二向下取整了,所以啥事都没有
递归迭代优缺点
- 递归: 思路清晰,结构简单,递归深度过大会导致溢出
- 迭代: 代码相对较难写,对比递归方法不易发生堆栈栈溢出问题
- 内心os:明明递归难写,比如反转链表
递归调用函数占用了什么空间
- 栈空间
- 实际上堆空间也有可能占用
函数栈空间多大
默认1M(不确定)
函数传参时int &
会减少占用的空间吗,有好处吗
基础类型(不会)
感觉从内存上讲没好处,看需求把,是否需要改那个数。
引用占不占内存
1,引用实际是通过指针实现的。
2,引用是一个常量指针。
3,引用在内存中占4个字节。
4,在对引用定义时,需要对这个常量指针初始化。
5,因为在在表达式中,使用引用实际上就像使用变量本身一样,所以直接用sizeof是得不到引用本身的大小的。
ps: 印象中有书说过不占,但是网上相关做过内存检测的文章都表明是占用的。个人认为占用一个指针大小的内存也挺合理的。
HTTP协议
简单介绍,协议细节和包含了什么
报文格式
请求报文
- 请求行
- 请求方法 URL 版本协议
- 请求头部
- 请求数据
响应报文
- 状态行
- 版本协议 状态码 状态码描述
- 响应头部
- connection
- 响应正文
http常见状态码
http常见请求方法
get
post
STL常用的容器有哪些
map deque list vector
讲一讲容器的内部实现,扩容缩容,存储
- vector内存结构,扩容缩容
- string扩容缩容,连续的
- string是连续的
- 优先级队列,以vector为存储结构的堆(详细可参考我的另一篇讨论帖)
面向对象思想的特点
- 封装多态继承
哪些语言特性体现面向对象
- 多态
多态通过什么实现的
- 虚函数表
多态和重载区别
- 多态
- 通过虚函数表实现
- 一个接口,根据调用的对象不同产生不同的结果
- 重载
- 通过参数列表的不同实现根据输入参数类型不同选择对应的函数
重写和重载的区别
重载是相同函数名,但函数的参数不能完全相同。重写是指派生类改写基类虚函数的函数体。
虚函数继承机制与内部实现
通过虚函数表实现
类的大小
int成员+普通函数+虚函数 类大小是多少 sizeof
- 4+4
- 类中的成员函数不占大小
- 虚函数只分有和没有不看个数,有就占一个指针大小(虚函数表指针),没有就没有
- 在部分64位编译器上,由于指针大小8字节,加上发生字节对齐,有可能显示类(一个int+一个虚函数)大小为16字节
PS:感谢@Thliter指出错误
字节对齐的理解 pedding
- 为什么要字节对齐
- 怎么字节对齐
- 不对齐会怎么样
- 对齐与不对齐的访问内存区别
字节序
大端小端的区别
- 小端(先存小的) 数值高位 放在内存低位
- 网络序(默认大端序)
- 字节序怎么转换
- int的怎么实现
string有字节序的说法吗
- 没有,字节序是指byte的排序,string里面都是char,一个char就是1字节
- 只要出现索引的地方,一定是索引越大地址越大
四次挥手
- 2msl
- 半连接状态
腾讯二面 (11天后)
自我介绍
内存碎片
- 内碎片外碎片
字节对齐的原理
多线程哪些东西是共享的
- 静态变量共享吗
- 虚拟内存地址的组织
tcp拥塞控制
- 慢启动和快重传的触发条件
- 怎么区分是网络的原因(连发3次ack说明丢包)
udp改可靠udp怎么做
- 对着tcp的可靠传输方法改
- 加ack
- 加序号
- 拥塞控制
stl标准库六大容器
- vector内存
- map的实现方式
共享内存
进程重启如何读到之前的东西(比如本来有个map,重启后继续读到)
- 共享内存可以实现的
设计一个算法
红包算法,3个人抢5块的红包,每个人不能超过2块
先每人分2块,再加权取随机数按比例加权扣一元
腾讯三面(1天后)
三面整体偏聊天风格
自我介绍
本科相关的内容
计算机的书看过自学过哪些
后台开发需要哪些知识和技能
最大的项目代码量多少
epoll两种模式的区别
linux看过哪些书
- proc文件系统知道吗
C/C++看过哪些书
最近看的技术书籍
python什么时候学的
go语言有没有尝试学一下
哪个课程花的时间比较多
闲聊
玩游戏吗
平时的一天怎么安排的
职业规划
写不写技术博客
怎样学习一门新的技术
- 找路线
- 基础内容看书
- 视频课
- 粗看书再细看书
怎么用隧道上网的,自己做的还是买的
隧道上网原理
google.com屏蔽的原理是什么,隧道怎么实现的
评价+反问
基本知识ok,前两面面试官聊得差不多就不问你了
腾讯HR (2天后)
家庭情况
介绍项目
拿了别的offer会去哪
工作情况
OC(2天后)
第一次发面经长文,如有违规的地方恳请大佬私信调整。
顺带推荐一波牛客的冲刺班,免费的,对于基础一般的同学来说确实挺有用的,有项目+整理好的八股文。现在已经全是录播课了,不过白嫖的东西要什么自行车是吧。
https://www.nowcoder.com/courses/cover/live/690
下面这篇帖子简要介绍了这个课程的内容和我对其的理解,有需要的小伙伴可以参考一下。
https://www.nowcoder.com/discuss/651617