腾讯PCG后台开发实习4轮技术面试面经分享
1.介绍了下部门,PCG手Q小程序后台框架
2.自我介绍
3-13.怼项目,很细
14.另一个项目的操作系统平台
15.你做了什么工作
16.UDP和TCP的区别
17.为什么TCP不能保证实时性 --- 这个地方答的啥了,把那个延时ACK给说进去了,实际上就扯流量控制和拥塞控制就OK了
18.介绍一下延迟ACK和累计应答
19.介绍下流量控制,用来干什么,受谁限制,由谁来确定
20.介绍下拥塞控制,用来干什么,拥塞控制流程
21.说一下快速重传---懵逼了,突然没想起来,其实就是收到三个重复ACK
22.为什么要三次握手
23.三次握手最后一个ACK可以携带数据么?
24.被动关闭方发送一个收到一个FIN后处于什么状态--close wait
25.介绍一下close_wait状态,在这个状态下,还可以再接收数据么?还可以再发送数据么?
26.当主动关闭放发送最后一次ACK后会处于什么状态
27.time-wait状态需要等待多时时间,为什么需要等待?直接结束不行么
28.聊软项目怎么做UDP可靠传输的
29.发送数据包的时候调用的什么API
30.在什么时候会调用accept
31.讲一下listen函数的等待队列,可以调整么?
32.进程到通信用过么
33.介绍一下有哪些进程间通信的方式
34.管道怎么用
35.能给每一种进程间通信介绍一个场景么
36.虚拟内存了解么
37.说一下虚拟内存的原理
38.为什么是0-4G
39.64位的操作系统进程地址空间有多大?---- 不确定
40.C++的多态 --- 重载算不算??
41.STL库用过么,最常用的是啥 vector
42.讲一讲vector的实现
43.介绍一下STL的排序用的什么算法
44.块排的时间复杂度
45.堆排序的时间复杂度
46.const的作用
47.static变量在什么时候初始化
48.介绍一下堆和栈分别在什么时候释放
49.介绍一下new和delete以及malloc和free
50.除了new和malloc,还有什么方式可以在堆中分配内存么?---mmap,怎么释放?munmap
51.指针和引用的区别
52.同步IO和异步IO了解不,介绍一下
53.怎么去设置非阻塞IO 和 异步IO
54.非阻塞的情况下怎么去同时监听多个socket -- 自己轮询,select/poll/epoll
55.select有用过么?
56.介绍下quagga中select的使用
57.自己写程序有用多线程么
58.多进程有用到过么?
60.如果父进程打开了一个文件,子进程里面这个文件描述符是可以用么。---我说不行,面试官说可以。
有什么问题:
61.突然想起来之前忘记问你的一个问题,你对redis,Nginx那些有用过么---没有,但是了解一些原理
62.介绍一下你了解的redis和Nginx
63.闲聊了一段时间,问了学了什么课,这些都是从哪学的
64.项目难点
65.讲讲最后怎么解决的
66.你项目多线程同步怎么做的-----无锁队列
67.平时怎么学习的
面试完,直接就灰了
5.27被PCG手Q后台捞起来
5.27 摸底面试 55min
1.自我介绍
2.介绍一下TCP和UDP的区别
3.下面我们来分析一下TCP,三次握手了解吧,为什么需要三次握手
4.场景题:接收端和发生端之间有个TCP长连接,接收端应用层一直不处理缓冲区数据,发送端一直发,最后发送端,接收端,TCP一些属性,会有什么变化
---- 出现一个现象,反复为什么,直到回答到问不下去了
5.场景题:UDP包想一次性发送2K的数据,接收端1K1K的读,能成功么。。
---- 把题目理解错了,我说可已,2K数据分成两次发。。。连环为什么
6.进程地址空间布局
7.线程和进程的区别
8.线程共享,底层原理,为什么?
9.进程间通信,无名管道,有名管道,共享内存,原理,什么创建,什么时候消失。----- 问消失的时候卒
一直问,直到回答不上来,管道进程关闭了会消失么,为什么,管道关闭后对应的管道文件会消失么,为什么,机器重启会消失么,共享内存也是,进程关闭会不会消失,为什么,机器重启会不会消失,为什么
10.算法题:二叉搜索树求two-sum问题
11.算法题:判断单链表是否是回文链表问题---说了改后半部分数据指针方向,然后又让我讲还有什么方法---暴力了一波
12.算法题:链表公共节点问题
13.40亿个8byte的号码,怎么找出出现过5次以上的号码,做系统设计
1)分析内存占用情况
2)系统大致框架
-----多线程+hash表处理,让我分析hash表的内存
-----问了hash冲突
-----如果我服务器只有4G的空间,你怎么处理
-----多机
-----多机中如果有一个down掉了,并且分发的机器发完后第内存清理了,怎么处理 ---- 备份处理机器
-----还有呢?----卒
14.还有什么问题
-----要了个面试反馈,说思考问题太菜,让我多实践多锻炼
-----问了是不是二面,他说不是二面,上次挂了,这次重新捞起来,让我等通知,他们还需要决策一下。如果通过的话补笔试和面试。
总的来说,着重考察基础知识,问题分析能力和系统能力。这场面试时打电话突袭的,刚刚面试完另外一家公司的,就收到了电话,面试官直接问现在可以面试么,于是就开始了。
5.30 初试 3h20min
1.自我介绍
2.怼项目,分析代码架构,实现逻辑
3.聊了一个我提到了但是不怎么熟悉的通信的技术
4.写题:
1) 字符串去空格
2) 去一个数的N次方
3) 链表倒叙
4)代码找错
5)求一个表达式的值, (int)(((int*)0)+4)
5. const int func(const char *const p) const 四个const的作用
6. malloc/free和new/delete的区别?为什么有了malloc和free还需要new和delete?底层原理?sbrk系统调用?mmap系统调用?内存池?
7.inline内联函数和函数宏的区别?函数宏有什么好的地方?inline有什么不好的地方? 在生成可执行文件的过程中,inline和函数宏的处理分别发生在什么阶段?inline和lambda表达式的区别?
lamda为什么效率高
8.C++虚函数和多态?虚函数指针和虚表?构造函数和析构函数能不能设置成虚函数?为什么?多继承?回调函数?
9.给了个代码,让分析变量和函数的在内存中过的存储区域?分析一下内核区域在多线程的时候怎么表现?
10.场景题:设计一个QQ空间。
11.还有什么问题
总结:对知识的掌握程度,问的很深,并且一直追着问为什么是这样,让分析理由。
6.4 复试 1h20min
1.题:找n个数中,出现次数大于n/2次的数
2.写个块排,分析一下块排的时间复杂度、空间复杂度、稳定性?堆排序呢?归并呢?其他你了解的排序呢?
3.返回值是个结构体或者class,这种形式会有什么问题没?怎么优化
4.在项目开发过程中遇到过你们守护进程程序崩溃么?分析一下碰到的一些问题。
5.你们守护进程脱离了终端,怎么调试?对于那些高并发的场景,每次都去写日志,会有什么问题?怎么好的办法调试这样的程序?
6.有哪些情况会导致程序终止或者崩溃
7.段错误
8.访问越界
9.ctrl+c发的是什么信号
10.assert函数说一下?abort函数调用后程序会咋样?
11.异常?-- 参考深入理解计算机操作系统第八章
12.实习时间?
13.还有什么问题?
仅做分享,如有侵权,联系删除。
公众号后台回复:【cs字节21届提前批】即可领取
公众号后台回复:【cs猿辅导】即可领取
想要获取更多高质量,详细,精选,分类,整理,精装的所有互联网公司的面试真题,在此文末点赞,评论:【某某岗位面经合集】,我看到后直接私信给链接。或者扫描博客左侧二维码,扫描它,然后带走我,你想要的互联网大厂各个岗位面试真题我全都有。
互联网校招面经,只专注高质量互联网初级面试经验分享。互联网初级面试真题小经是最专业的!致力于为广大初入互联网行业的求职者精心整理,免费分享面试相关资源。
辛苦整理不易,点个赞再收藏吧,听说点赞的同学都像下图这样offer满满!