腾讯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.还有什么问题?

仅做分享,如有侵权,联系删除。

 

腾讯PCG后台开发实习4轮技术面试面经分享

                            公众号后台回复:【cs字节21届提前批】即可领取

 

腾讯PCG后台开发实习4轮技术面试面经分享

                            公众号后台回复:【cs猿辅导】即可领取

想要获取更多高质量,详细,精选,分类,整理,精装的所有互联网公司的面试真题,在此文末点赞评论:【某某岗位面经合集】,我看到后直接私信给链接。或者扫描博客左侧二维码,扫描它,然后带走我,你想要的互联网大厂各个岗位面试真题我全都有。

 

互联网校招面经,只专注高质量互联网初级面试经验分享。互联网初级面试真题小经是最专业的!致力于为广大初入互联网行业的求职者精心整理,免费分享面试相关资源。

辛苦整理不易,点个赞收藏吧,听说点赞的同学都像下图这样offer满满

腾讯PCG后台开发实习4轮技术面试面经分享