腾讯音乐(TME)暑期实习状态+面经

各位腾讯音乐发offer了么?4.20面完hr+云证,hr面时说是5月份开始发offer,现在状态还是hr面,还在等。。。

面的后端开发,主go

面了3轮技术面+一轮技术面加面

一面:
go的gmp调度
go的context

问:(go的select题,运行状态(阻塞or not))
答出来了

Linux的select,poll,epoll(深入,太深了,只有epoll里面存的什么状态的文件描述符,没答出来,别的都答出来了)
想问数学,但是说是大一学的高数,变成写欧几里得算法(最大公约数),写了
磁盘调度算法
段页式,分页,分段
内存页调度算法
tcp握手,close_wait状态
tcp重传机制(超时重传,快重传)
MySQL隔离级别,提交读,默认隔离级别

问:(select count(*)和select count(1)哪个快(1为常数1)),
回答:不清楚,要是判断select *和某个属性的话可以通过判断命中索引来判断快慢

MySQL怎么查看是不是慢查询
MySQL回表查询


算法(120. 三角形最小路径和,直接动态规划从底到顶,时间o(n*m)+空间o(1),最优解)

基本都答出来了

二面:
go的切片和数组的区别(怎么样避免切片扩容带来的性能损耗,(unsafe直接修改容量【不太安全】)),还有别的方法么(想不出了)
go的map底层
tcp和udp的区别
tcp的可靠性怎么实现的(重传【超时重传,快重传】)
超时重传怎么确定的,超时重传怎么控制宽带空闲的(有个超时的计算公式,基于往返的时间,是可变的,通过滑动窗口控制流量,接收端返回ack可以有另一种方式【传回ack附带上已经收到的包的编号,发送端收到后可以不用重传已经收到的包】)
多路复用io(提醒一面问过,就过了)
Linux熟悉么用过什么命令(不怎么熟悉,用过vim,删除创建文件等命令,一般是win下编译好Linux下运行的文件,直接拿过去跑)
redis熟悉么?(MySQL更熟,转问MySQL)
MySQL的查询用什么优化(索引)
索引用的什么结构(B+树)
抢答(为什么用B+树),然后问(B+树和B树的区别【八股】)
MySQL的隔离级别
MySQL的隔离级别的控制(MVCC)
能不能解决幻读(答:幻读原因,可串行化能解决,通过Next-Key Locking控制,锁住索引和那一段范围的数据)

了解分布式么(不了解就没问)

场景题

用户听歌排行榜(百万级),每个用户一个小时更新一次听歌时长和排名,设计一个系统实现

redis:
存用户数据(ID,听歌时长,排名,过期时间)
zset,存用户听歌时长
map,存各个听歌时长的用户数目

MySQL:
存用户数据(所有用户【持久化】)

用户更新数据时,先去map中把原来的听歌时长-1,如果map相应的值变为0则从zset中删除该听歌时长,然后用户更新后的听歌时长对应的map+1,去zset中查询排名,更新排名。
数据过期时,存到MySQL,从redis中删除。

平时做项目时用缓存多么(查询多的时候会用到)

反问:表现怎么样?
基础知识挺牢固的,场景问题有些不足,不过毕竟都是要有经验才能回答好的,建议多看看了解多点。

【基本都答出来了】

编程题:(a了)
小红拿到了一个数组 a,每次操作小红可以选择数组中的任意一个数减去 x,小红一共能进行 k 次。

小红想在 k 次操作之后,数组的最大值尽可能小。请你返回这个最大值。

1≤len(a)≤10^5

1≤k,x,a≤10^4

示例1
输入: [7,2,1],3,2
输出: 2
解:最大堆,取堆顶,减x后放回,循环k次,放回堆顶

package main
import (
//     "fmt"
"container/heap"
)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param a int整型一维数组
* @param k int整型
* @param x int整型
* @return
int整型
*/

type dui_max []int

func (d dui_max)Len()int{
return len(d)
}

func (d dui_max)Less(i,j int)bool{
return d[i]>d[j]
}

func (d *dui_max)Swap(i,j int){
(*d)[i],(*d)[j]=(*d)[j],(*d)[i]
}

func (d *dui_max)Pop()interface{}{
t:=(*d)[len(*d)-1]
*d=(*d)[:len(*d)-1]
return t
}

func (d *dui_max)Push(a interface{}){
*d=append(*d,a.(int))
}

func minMax( a []int ,  k int ,  x int ) int {
// write code here
dui:=dui_max{}
for i:=0;i<len(a);i++{
heap.Push(&dui,a[i])
}

for i:=0;i<k;i++{
t:=heap.Pop(&dui).(int)
t-=x
heap.Push(&dui,t)
}

return heap.Pop(&dui).(int)

}

三面:
问:你大学的课程学的哪些?
答:计算机网络,操作系统,数据库系统概论等

问:你们大学学的语言?
答:c++和java,大一学的c++大二学的java,go是自学的

问:那是c++和java更熟?
答:没有,go更熟悉,c++和java是课程需要学的

问:你问什么学go,从个人喜好讲?
答:因为go更小巧方便,搭建http请求什么的,相比于java,虽然java的应用范围很广。go语言的并发特性,对于云和并发有优势。所以选go。

问:叫你重新设计实现你这个项目,你会怎么设计实现?
答:鉴权,jwt(有时效性),用redis存,当时看完一个博客框架用的,就参考着用在项目上了。

问:那你的session怎么保存的呢?
答:redis保存,传输放在http头部,浏览器保存token在本地

问:那用redis的什么数据结构存呢?
答:map或者set都行,还可以设置过期时间,setnx

问:你这个项目是多人合作的是吧,你能说一下你们的分工么?
答:其实这个项目基本是我自己完成的,那个同学是跟着我一起学go的,我写完给他看。

问:他负责什么的呢?我看你这里还有前端,你是想要做前端还是后端?
答:负责看,跟着我一起学。我是只想做后端的,做前端是因为这个项目需要就去学的,因为只有一周时间,所以大部分时间是在写前端,边学边写。

问:我看你项目有点小,没什么好问的,问一下别的。
(感觉答得很烂)

问:使用tcp和udp实现的协议你知道哪些?
答:
tcp:文件传输协议,远程登录使用的Telnet,DNS
udp:DNS
DNS服务器在解析域名时使用的udp,与其他DNS服务器同步缓存时使用tcp

问:tcp是面向字节流的,是什么意思?
答:tcp是面向字节流的,udp是面向报文的,tcp在发送2个消息时,要是前一个消息的报文长度没满,后一个消息会直接接到前一个消息的后面,造成黏包,udp两个消息会分开成2个报文,所以不会出现黏包。

问:你说的都是现象,你能说一下tcp怎么实现面向字节流的么?
答:没有那么深入了解过

问:你能说一下tcp的rst位标志是什么时候使用的么?
答:只知道rst位表示重置,具体的没有去了解过。

问:你能说一下你了解的排序算法么?
答:冒泡,选择,快排,归并,堆

问:那你能说一下快排的实现过程么?
答:先选择数组下标中点为基点,把比中点数大的数放到左边,比中点数大的放到右边,然后继续对两边数组进行递归

问:你能说一下快排和冒泡的区别么?
答:快排和冒泡的时间复杂度不同,快排平均时间复杂度为nlogn,最坏为n^2;快排是不稳定的,冒泡是稳定的,快排在比较时会造成相同大小的数的相对位置发生改变。

go的map
go的GMP协程调度

问:你使用过我们的产品么?
答:用过qq音乐,现在用的是网易云音乐

问:你觉得网易云与qq音乐的差别,你为什么喜欢用网易云音乐?
答:歌单都在网易云,网易云的推荐系统符合我口味。

问:如果让你设计优化推荐系统,你会怎么做?
答:推荐系统应该都是机器学习的事,我感觉后端能做的只有增加标签,更加细化标签,从而能给机器学习提供更细化的数据,就能提高推荐的相关性。还可以统计听同一个标签歌的人还会听哪些歌,这样得到的数据也有相关性。

问:你对哪些开源项目感兴趣或者说你参与了哪些开源项目?
答:我对于之前看的一个教程的up开发的项目gin_vue_admin有兴趣,可以快速部署搭建服务。

问:你对于读研,国企和私企的看法?
答:我是想着直接工作,因为,相比于读研个几年,到时候出来还是得找工作,还不如出来工作3年,有3年工作经验更吃香。

问:你对互联网行业怎么看的?,,,(忘了),对公司文化和加班谈谈你的看法?
答:因为之后互联网企业对于云和大数据并发的热会持续下去,而这些正是适合go的,所以。,,,我的感觉是,有钱就干,加班没什么,因为我是实习生,了解的东西很少,加班肯定能学到更多东西。

问:你读过什么书?
答:开始学go时过了一遍教程的博客,然后就去读《go语言圣经》,然后刷了一个月力扣后去读《go读书笔记》,《go专家编程》,然后还有一本《go语言编程之旅》没读完,感觉有点深。

反问:请问我的表现怎么样?是很差么?
答:这个目前还不能给你答复,我得和之前面试的同事讨论后才能有结果。

加面问的东西很笼统就没搞面经。




#腾讯音乐##实习##面经##Go##求offer#
全部评论
同学今天你现在收到offer了吗
2 回复 分享
发布于 2022-06-02 13:42
我也是呜呜呜,等了快两个月了,lz你有hr的联系方式吗
1 回复 分享
发布于 2022-05-17 14:38
我也在等
1 回复 分享
发布于 2022-05-09 19:07
同在等
点赞 回复 分享
发布于 2022-05-09 17:10
同在等
点赞 回复 分享
发布于 2022-05-09 20:50
想请问腾讯云证是什么呀?
点赞 回复 分享
发布于 2022-05-11 20:29
感觉问得还是比较基础的,不过我是主要挖项目😂,前两面问了很久的项目,楼主现在发了吗
点赞 回复 分享
发布于 2022-05-13 15:43
lz请问你们组是做什么的呀
点赞 回复 分享
发布于 2022-05-16 14:16
2023TME校招投递倒计时一周啦,快来投简历~ TME内推码:LNY3RG 有问题可以私聊我,看到必回~
点赞 回复 分享
发布于 2022-09-16 15:48 广东

相关推荐

叮咚鸭:群众里面有坏人
点赞 评论 收藏
分享
评论
3
55
分享
牛客网
牛客企业服务