腾讯音乐后台开发一二面

一面

腾讯音乐后台开发一面,面完看状态已经变成了复试,这次效率还挺高的。。。
之前面过一次腾讯地图,一面后过了一个星期左右,状态才变灰。然后被腾讯音乐锁了简历,11天之后迎来了今天的一面。。。
来电话时正在打羽毛球,直接问我现在有时间面试吗(正常情况下应该是先约面试时间的,这个是因为我下午找HR催了面试官了)?我说可以等二十分钟之后吗?然后就约了7点的面试
面试官非常直接,就介绍了一句我是腾讯音乐的,然后就直接开问

1.实验室方向
2.进程和线程
3.线程上下文切换为什么比线程开销小
4.如果两个进程都是单线程,这时怎么进行线程切换?(面试官意思可能是不同进程之间的线程怎么切换)
5.进程间通信方式
6.线程同步
7.为什么进程间需要单独的通信方式,而线程不需要?
8.什么是死锁?
9.如何预防死锁?
10.select和epoll区别(底层原理)
11.TCP,UDP区别
12.Nagle算法
13.不用Nagle与用Nagle的好处分别是什么
14.HTTP下载一个文件时,为什么速度刚开始时很慢,慢慢的才会达到一个封顶(完全懵逼)
15.HTTP的put和get有什么区别,在协议层面上有没有了解过(没有)
16.TCP三次握手
17.什么是半连接状态
18.TCP为什么可靠?
19.UDP怎么样可以实现可靠传输?
20.用什么语言?C++,然后开始问C++相关的
21.虚函数如何实现?
22.析构函数为什么要是虚函数,构造函数可以是虚函数吗?为什么?
23.友元类
24.为什么要做内存对齐?
25.深拷贝,浅拷贝
26.map,unordered_map底层,效率
27.哈希冲突怎么解决

5个算法题,比较简单,没让写,只说思想:
28.二叉树中寻找两个节点的公共父节点?
29.二叉树深度
30.数组里的第2大元素(堆,冒泡思想)
31.单向链表的倒数第n个节点
32.判断链表中是否有环

问实习:
33.介绍实习项目
34.协程怎么理解?为什么协程由我们自己调度的话,性能会更高呢?
35.什么情况下会对协程进行切换(调度),然后我还是没明白,面试官给解释:操作系统调度线程用时间片,时间片用完调度另外的线程,那你调度协程是怎么判断该调度哪个协程了呢?
36.项目参考开源代码还是自己实现的,你在里边主要负责什么?
37.协程调度算法是什么样的?

然后就直接结束了,也没让我问问题,以为凉了。。。


二面

腾讯二面凉经,知识点问的很深,被问的很难受,好几天了,今天终于鼓起勇气复盘了。。。
总结起来一是自己对知识点理解不够深入,只是停留在表面。二是心理素质不行,面试官问了几个不会的问题之后心态就有点崩了
  1. 介绍项目
  2. 在服务器中多协程相比多线程优势在哪?
  3. 协程中使用全局变量需要注意什么?(这个问题到现在也不太明白,请大佬们赐教)
  4. 说一下虚拟内存?
  5. 虚拟内存为什么是4G,是所有进程的虚拟内存都是4G吗?为什么?
  6. 当应用程序用到的内存超过4G了怎么办?
  7. MySql索引介绍一下
  8. 为什么不用二叉树,而是B+树呢?用二叉树的话有什么缺点?
  9. 如何选主键?
  10. Mysql B+树中每个节点大小是多少(16KB)?为什么是16KB?
  11. TCP,UDP应用场景,即要求速度,又要求可靠性怎么办?(我回答的是UDP模仿TCP的可靠传输)然后面试官问UDP模仿TCP加了重传、ACK等机制之后,那和TCP又有什么区别呢?怎么保证比TCP更快呢?(瞎分析了一波,没分析对,感觉面试时不会的问题是不能瞎回答的,否则会留下很不好的印象,感觉回答完这题,面试官已经不是很有耐心了)
  12. 了解http1.0/1.1/2.0吗?只了解一点1.1
  13. 4开头和5开头的状态码分别表示什么?
  14. 10亿个数值,找最大的一万个?(这个是最后一个问题,解释了大概有15分钟,可能是我表达能力太差了)
我:用一万个节点的堆,然后分批读取数据,往堆里插数据。
面试官:分批的意义是什么?
我:怕一次读完内存里装不下。
面试官:问为什么要一次全加进来呢?
问到这里我感觉有点懵逼,不知道在问什么?我以为面试官没有理解我的话,然后就举了个例子说:假设把这10亿个数值平分到一万个文件里,每次读进内存一个文件,然后遍历更新小顶堆
面试官:为什么要分成一万个文件呢?
我:我就是举个例子,为了防止超内存,每次读进来一部分
面试官:那为什么每次读进来一个文件呢?
我:我这个时候已经根本不知道在问啥了
后边面试官就是抓住我举的分文件这个例子一直问
最后面试官给了解释:他想要听的答案应该是设置一个buf,固定size,每次读一个buf大小的文件进来。。。。。。

然后分析时间复杂度,其实我一开始用错了数据结构,应该用小顶堆,我说成了大顶堆。时间复杂度应该是O(n),也没说好,刚开始把时间复杂度说错了,最后才改过来。

最后反问环节:问建议,面试官说了很多,总之意思就是自己哪里薄弱自己是最清楚的。。。

记录一次噩梦一般的面试


#实习##C++工程师##腾讯音乐娱乐##面经#
全部评论
&终于遇到一个真实一点的tx面经了😂有些贴的tx面经简直简单得令人发指
4 回复
分享
发布于 2020-04-05 14:45
6.当应用程序用到的内存超过4G了怎么办,这个应该是指32位吧,这个有办法吗
1 回复
分享
发布于 2020-04-05 11:14
百信银行
校招火热招聘中
官网直投
&自从面了五场腾讯感觉自己网络知识得到了大大的提升。。
1 回复
分享
发布于 2020-04-06 00:12
&m
点赞 回复
分享
发布于 2020-04-05 10:26
你的项目是协程相关的么,我觉得协程用全局变量需要考虑同步的问题,需要实现一个协程级的条件变量
点赞 回复
分享
发布于 2020-04-05 10:27
大数据那个问题,如果是取最大频数,才要哈希吧
点赞 回复
分享
发布于 2020-04-05 11:05
楼主面的是哪个部门呀?
点赞 回复
分享
发布于 2020-04-05 13:35
活捉群友,加油啊~面试运气也占一部分,多投几家
点赞 回复
分享
发布于 2020-04-05 14:57
。。大数的问题,你应该计算一下这个数组整体大小,然后询问数据是否重复,如果重复,先对文件hash,然后保存不同文件。维持一个1万的小顶堆,遍历效率是o(nlogn)
点赞 回复
分享
发布于 2020-04-05 15:02
第11个,TCP和UDP那个,我第一反应是可以使用KCPTUN,是建立在UDP的基础上,但是会有差错检测
点赞 回复
分享
发布于 2020-04-05 15:39
&面试官真是狗屁不通。
点赞 回复
分享
发布于 2020-04-05 17:42
楼主电话面吗
点赞 回复
分享
发布于 2020-04-05 17:45
&偶遇校友,老哥那个院的啊
点赞 回复
分享
发布于 2020-04-05 18:09
tcp那个现在楼主有思路吗😂
点赞 回复
分享
发布于 2020-04-05 20:23
问题11   对UDP加了重传,ack响应,序列号,滑动窗口等机制以后实现可靠传输,效率比TCP效率高的 原因在于TCP有着复杂了网络拥塞机制,以及三次握手四次挥手等建立链接的机制,不知道理解的对不对,欢迎大家来讨论,共同学习
点赞 回复
分享
发布于 2020-04-05 20:56
&同西电,,你的项目怎么写的
点赞 回复
分享
发布于 2020-04-05 23:15
感觉很难
点赞 回复
分享
发布于 2020-04-06 00:07
楼主,面试官问虚拟内存4G,是针对32位操作系统的吧?
点赞 回复
分享
发布于 2021-05-26 20:01

相关推荐

15 133 评论
分享
牛客网
牛客企业服务