腾讯IEG后台开发面经(C++)
一、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的索引结构一般是什么样的?(B+树)
(二)计算机网络
1、TCP的三次握手过程?
2、UDP怎么实现TCP的拥塞控制?
(三)Linux
1、有一个运行的进程突然挂掉,怎么查看它是哪里出问题了?(gdb调试)
2、Linux怎么查看进程的CPU消耗?(top命令,啥都能干,我竟然只知道拿他看进程号。)
3、微信的群聊,一个人发消息,其他人都能收到。这个在服务器集群上应该是怎么实现?(多播与组播)
(四)其他工作相关问题
1、实习的目的?是否准备实习转正?
2、来深圳工作考虑吗?(送命题)
3、在面试哪些公司?具体进展?
4、面试官自己介绍工作室情况。
5、有没有什么要问他的?
(1)后台工作具体情况
(2)人员分工
(3)技术精进经验
整个二面的话,感觉更偏技术的应用,会说一些具体的场景,然后让给出解决方案或者分析背后的原理。
三、IEG-HR面经(23min)
关于“面试邀约确认”的事,这里给大家提个醒。HR面会直接发一个面试时间(也可能打电话和你商量,但我的是直接发了面试时间),然后自己选择接受还是改时间。我太莽了,当时发通知是短信 + 邮件,我只看了短信,也查了官网的安排,没有说明需要确认接受面试邀约与否。后来去看邮件的时候,发现还要确认接受,我是直到面试前几分钟去看邮件才选择接受,好在当天还是面试了。所以这里提醒大家一下,关注“腾讯招聘”的公众号,这里可以确认,然后面试安排的话也要记得check邮件。
关于面试问题
1、自我介绍
2、项目经历
3、项目过程中遇到的比较大的挑战?怎么克服的?收获是什么?
4、团队合作过程中,遇到过什么插曲?怎么解决的?
5、怎么学习新技术?技术方面有什么计划和打算?
6、给自己贴几个性格标签?(个人优点缺点)
7、对来深圳有什么看法?(送命题)
8、在面试哪些公司?不同的机会你如何比较?
9、关于身体状况有什么要说明的?
10、你是哪里人?(我:湖北的,你们不会介意吧?哈哈)
11、父母从事什么行业?
12、父母对你所从事的行业和工作有什么看法?
13、有什么想问她的?(①导师分配;②留用率)
总结一下,HR面相对简单,但是也还是比较考验说话技巧。问团队合作中的问题,肯定要从自身找原因。问工作地点问题,肯定要表明自己充满期待,一般问你就是意味着工作地点无法再调整。总之,要表达出一个正面的、积极的态度。
最后祝各位面试顺利,喜提offer。
#腾讯IEG后台开发##腾讯##C++工程师##面经##校招#