腾讯IEG后台开发面经(C/C++)

时间:3月20日

总共经历了两轮技术面 + HR面,今晚刚结束HR面,许愿offer。下面分享一下面经,供大家参考!

IEG一面面经(50min)

(一)C++基础+算法与数据结构

1、C++面向对象的特性? 2、多态与虚函数? 3、虚函数表? 4、虚析构函数及其作用 5、虚函数与纯虚函数的区别 6、static与普通函数变量的区别?常量存储在哪里?static变量又是存储在哪里? 7、STL中的vector与map底层原理 8、map中为何使用红黑树而不是二叉平衡树? 9、B树与B+树的区别及应用。 10、B+树作为索引的话为什么比二叉树快?(从时间复杂度的角度分析) 11、常用的排序算法有哪些?具体说说快排的思想

(二)Linux操作系统 1、内存分布与内存管理方式 2、虚拟内存与物理内存 3、malloc分配的是虚拟内存还是物理内存? 4、memset操作malloc的指针,是操作物理内存还是虚拟内存? 5、文件系统的inode,硬链接与软连接。 6、常见的进程间通信方式 7、最快的进程间通信方式是什么?(共享内存) 8、共享内存为什么比其他的进程间通信方式快? 9、重启进程后,原共享内存是否可以操作?对于普通的进程又是如何呢? 10、什么是僵尸进程? 11、select与epoll的区别

(三)网络编程 1、TCP的四次挥手 2、四次挥手中,TIME-WAIT状态是在哪一步? 3、TIME-WAIT()状态下的等待时间是多少?(2MSL)为何是2MSL? 4、TCP中的流量控制原理 5、TCP的拥塞控制原理及实现拥塞控制的主要算法有哪些?(我只说了慢启动,面试官说有四种) 6、Linux下的Socket编程常用的抓包工具

(四)Shell相关 Linux常用命令:查看进程ps与top,查看内存free,linux抓包tcpdump等。

(五)数据库 问我平时用的多吗?有学过这门课程吗?我说之前学过,平时很少用,不是很熟悉,正在复习。然后就没问,让我这一块加强一下。

(六)项目相关 主要做哪一块的项目?大致讲讲。

总的来说,一面也没怎么照着简历问。主要考察基础,问的很宽泛,还是需要好好准备。一面面试官对我评价还不错,很快就给了复试通知。

IEG二面面经(52min)

(一)C++基础 + 算法与数据结构 1、给一个类class Player1{private:int a; char b; double c; }; 有如下问题:

(1)给定初始化的实例化对象,Player1 A; 问 Player1 B = A; Player1 C = A; 两种方式的区别?(拷贝构造函数) (2)sizeof(Player1)的大小?(字节优化对齐) (3)给定class Player2{private:int a; char b; double c; public: virtual fun(c){}}, 问sizeof(Player2)的大小?(虚函数表) 2、算法题:单链表怎么判断是否有环? 3、算法题:一个有10亿个节点的平衡二叉树中,每个节点有指向父节点的指针,先给定其中的两个节点,怎么找他们的公共父节点? 4、有一个游戏中的背包,背包中放了很多道具。底层的数据结构是定长数组,现在想实现较快的查询、插入和删除。怎么做?(类似哈希的拉链法) 5、MySQL的索引结构一般是什么样的?

(二)计算机网络 1、TCP的三次握手过程? 2、UDP怎么实现TCP的拥塞控制?

(三)Linux 1、有一个运行的进程突然挂掉,怎么查看它是哪里出问题了? 2、Linux怎么查看进程的CPU消耗? 3、微信的群聊,一个人发消息,其他人都能收到。这个在服务器集群上应该是怎么实现?

(四)其他工作相关问题 1、实习的目的?是否准备实习转正? 2、来深圳工作考虑吗? 3、在面试哪些公司?具体进展? 4、面试官自己介绍工作室情况。 5、有没有什么要问他的?

整个二面的话,感觉更偏技术的应用,会说一些具体的场景,然后让给出解决方案或者分析背后的原理。

IEG-HR面经(23min)

之前二面面试官聊得那个火热,巴不得我明天就过去加入他们,但这轮HR面我是足足等了一星期。等的也比较着急,后来反思了一下面试过程中哪里出了问题。我想可能是我当时对工作地点比较犹豫,没有明确答复。后来就自己打电话过去再次说明这个情况,说自己愿意去深圳工作,然后第二天就收到HR面试安排。

关于“面试邀约确认”的事,这里给大家提个醒。HR面会直接发一个面试时间(也可能打电话和你商量,但我的是直接发了面试时间),然后自己选择接受还是改时间。我太莽了,当时发通知是短信 + 邮件,我只看了短信,也查了官网的安排,没有说明需要确认接受面试邀约与否。后来去看邮件的时候,发现还要确认接受,我是直到面试前几分钟去看邮件才选择接受,我真莽,真的。后来HR没有按时间打电话来,慌了好一阵,我就自己打电话过去问情况,好在很快就安排了面试。所以这里提醒大家一下,关注“腾讯招聘”的公众号,这里可以确认,然后面试安排的话也要记得check邮件。

关于面试问题 1、自我介绍 2、项目经历 3、项目过程中遇到的比较大的挑战?怎么克服的?收获是什么? 4、团队合作过程中,遇到过什么插曲?怎么解决的? 5、怎么学习新技术?技术方面有什么计划和打算? 6、给自己贴几个性格标签? 7、对来深圳有什么看法?(一定别说考虑考虑,否则别人不考虑了) 8、在面试哪些公司?不同的机会你如何比较? 9、关于身体状况有什么要说明的? 10、你是哪里人?(我:湖北的,你们不会介意吧?哈哈) 11、父母从事什么行业? 12、父母对你所从事的行业和工作有什么看法? 13、有什么想问她的?

总结一下,HR面相对简单,但是也还是比较考验说话技巧。问团队合作中的问题,肯定要从自身找原因。问工作地点问题,肯定要表明自己充满期待,一般问你就是意味着工作地点无法再调整。总之,要表达出一个正面的、积极的态度。

最后祝各位面试顺利,喜提offer。