腾讯ieg春招实习面经分享(后台开发C++)

-------------------------------------------------------------------
腾讯一面：

手撕二分查找
写了闭区间方法 
改成左闭右开会影响结果吗n=nums.size()不减一。 不会，因为除二向下取整了，所以啥事都没有 
递归迭代优缺点
-递归: 思路清晰，结构简单，递归深度过大会导致溢出 
-迭代: 代码相对较难写，对比递归方法不易发生堆栈栈溢出问题 
-内心os:明明递归难写，比如反转链表 
递归调用函数占用了什么空间
-栈空间 
-实际上堆空间也有可能占用 
函数栈空间多大
默认1M(不确定)
函数传参时int &会减少占用的空间吗，有好处吗
基础类型(不会)
感觉从内存上讲没好处，看需求把，是否需要改那个数。
引用占不占内存

1，引用实际是通过指针实现的。
2，引用是一个常量指针。
3，引用在内存中占4个字节。
4，在对引用定义时，需要对这个常量指针初始化。
5，因为在在表达式中，使用引用实际上就像使用变量本身一样，所以直接用sizeof是得不到引用本身的大小的。
ps: 印象中有书说过不占，但是网上相关做过内存检测的文章都表明是占用的。个人认为占用一个指针大小的内存也挺合理的。

HTTP协议
简单介绍，协议细节和包含了什么
报文格式
请求报文
-请求行 
o请求方法 URL 版本协议 
-请求头部 
-请求数据 
响应报文
-状态行 
o版本协议 状态码 状态码描述 
-响应头部 
oconnection 
-响应正文 
http常见状态码
http常见请求方法
get
post
STL常用的容器有哪些
map deque list vector
讲一讲容器的内部实现，扩容缩容，存储
-vector内存结构，扩容缩容 
-string扩容缩容，连续的 
ostring是连续的 
-优先级队列，以vector为存储结构的堆(详细可参考我的另一篇讨论帖) 
面向对象思想的特点
-封装多态继承 
哪些语言特性体现面向对象
-多态 
多态通过什么实现的
-虚函数表 
多态和重载区别
-多态 
o通过虚函数表实现 
o一个接口，根据调用的对象不同产生不同的结果 
-重载 
o通过参数列表的不同实现根据输入参数类型不同选择对应的函数 
重写和重载的区别
重载是相同函数名，但函数的参数不能完全相同。重写是指派生类改写基类虚函数的函数体。
虚函数继承机制与内部实现
通过虚函数表实现
类的大小
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天后)
