腾讯音乐内推-腾讯音乐内推码

腾讯 软件开发 面经

9月06日  网申

9月07日  测评

9月13日  一面

自我介绍

项目介绍

零拷贝

DMA

缓存分配回收策略

分级缓存池 扩容机制 分级策略

RBAC

JWT加密算法

es 倒排索引

实现一个分词器

分词算法

结果集排序规则

怎么判断结果和用户的相关性

怎么计算相关性 频率、密度、权重

限流和熔断

如何实现一个限流机制

场景题 QQ音乐推荐策略

怎么计算用户的音乐偏好

怎么计算用户和音乐的匹配度

怎么设计推荐算法

怎么过滤掉用户已经听过/推荐过的音乐

怎么压缩听歌记录

说一下布隆过滤器

怎么解决哈希冲突

k8s

netstat、jstat命令

Docker资源隔离原理

HTTPS握手过程

C++虚函数

手撕(easy)

反问

全程70分钟,投的CSIG,有点汗流浃背了。面试官提问很严谨,问题一环套一环,有很多探讨的过程。从中能学到不少东西,是面试体验最好的一次。

腾讯音乐娱乐集团2025实习生招聘全面启动

腾讯音乐娱乐集团是中国在线音乐娱乐服务开拓者提供在线音乐和以在线音乐为核心的社交娱乐两大服务。QQ音乐、酷狗音乐、酷我音乐、全民K歌及懒人听书,都是腾讯音乐旗下产品。

特别强调!!腾讯音乐是一家独立上市公司,网申独立进行,和腾讯不冲突,经常有免费演唱会和音乐节门票,还有明星空降扫楼!

【热招岗位】技术类、产品类、设计类、内容类、专业类

【面向人群】毕业时间在2025年9月-2026年12月的在校大学生

【工作地点】北京/深圳/广州

【网申地址】https://join.tencentmusic.com/campus

【内推码】SA3FQL(应聘类型选择:实习生)大家投递完在评论区打上姓名缩写+岗位~

三个集团分开招聘,即都需要单独投递,想加入鹅厂的同学可投~大家投递完可以在评论区打上姓名缩写+岗位(比如PM+LJJ),我来确认有没有内推成功喽

腾讯集团2026可转正实习招募啦!!!

7000+Offer等你拿!5大职族,100+岗位,虚位以待!

【业务无限可能】:6大事业群×3大职能线=鹅厂求职不设限!

专属内推链接:https://join.qq.com/resume.html?k=_ViNj_kpGrpFvybrRuF4rw

--------------------

腾讯音乐娱乐集团2026可转正暑期实习招聘全面启动特别强调!!

腾讯音乐是一家独立上市公司,网申独立进行,和腾讯不冲突

【热招岗位】技术类(算法、开发、测试、运维、数分、数据工程)、产品类、内容类、专业类、设计类

【工作地点】北京/深圳/广州

【网申地址】https://join.tencentmusic.com/campus

【内推码】SA3FQL(内推码需手动复制,应聘类型选择实习生)

-------------------

【腾讯集团旗下|云智研发公司25届春招+26届暑期实习内推!】

【招聘岗位】技术,产品,设计,安全,质量,技术,项目等超多岗位!

【工作地点】工作地点涵盖武汉,西安,长沙,重庆,厦门

【投递链接】https://app-tc.mokahr.com/m/recommendation-apply/csig/6007?sharePageId=56133&recommendCode=NTAAivz&codeType=1&hash=%23%2Frecommendation%2Fpage%2F56133

【内推码】NTAAivz(填写内推码,如果PC端需要注册显示码错误,就用移动端点噢)

#内推##牛友职场人脉来了#
全部评论
谢谢姐姐!
点赞 回复 分享
发布于 06-15 04:36 广东
LS+数据分析
点赞 回复 分享
发布于 06-15 04:36 广东

相关推荐

一、面试基本情况本次面试主要围绕 React 相关技术、流式传输以及算法与 React Hook 实现展开,包含技术原理问答和两道代码实现题。二、技术问题回顾与解答1. React Router 的实现机制React Router 基于 HTML5 的 history API 实现单页面应用的路由功能。它通过监听浏览器的 popstate 事件(当用户点击浏览器的前进、后退按钮时触发)以及手动调用 history.pushState()、history.replaceState() 方法来更新 URL 地址,同时不触发页面刷新。在 React 组件中,通过 BrowserRouter(基于 history API)、HashRouter(基于 URL 的 hash 部分,兼容性更好)等组件包裹应用,结合 Route 组件定义不同路径对应的渲染组件。当 URL 变化时,React Router 会根据当前路径匹配相应的 Route 并重新渲染对应的组件,从而实现页面内容的更新 。不过在本次面试中,我对这块知识掌握不够扎实,未能完整清晰作答。2. React memo 是做了什么React.memo 是一个高阶组件,用于对函数式组件进行性能优化。它会对组件的 props 进行浅比较,如果前后两次传入的 props 浅比较结果相同,就直接复用之前渲染的结果,不再重新执行组件函数,从而避免不必要的重复渲染。但需要注意,它仅对 props 变化进行比较,当组件内部状态(如通过 useState 创建的状态)变化时,即使 props 未变,组件仍会重新渲染。3. React Suspense 怎么实现的React Suspense 用于处理组件的异步加载情况,让开发者可以指定在异步操作(如数据获取、动态导入组件)进行时显示的加载状态。它通过在组件树中标记一个“等待”区域,当子组件中有异步操作未完成时,会先渲染 Suspense 组件指定的 fallback 内容(如加载动画),直到异步操作完成,再渲染实际的子组件内容。内部实现依赖于 React 的 Fiber 架构,利用 Fiber 的可中断、可恢复特性,在等待异步操作完成期间释放 CPU 资源,不阻塞主线程,提高应用的响应性能 。4. 流式传输相关讨论在讨论流式传输时,我提出可以在前端利用 Server-Sent Events(SSE)实现。SSE 是一种单向的、由服务器向客户端推送数据的技术,适合用于实时数据传输场景。同时,对于 JSON 数据的处理,采用流式解析会更加高效,比如在处理阶乘等数据量较大且逐步生成的场景下,流式解析无需一次性将所有数据加载到内存中,而是边接收数据边解析处理,减少内存占用,提升数据处理效率。三、代码题实现1. 大数相减(考虑负数结果)function subtractLargeNumbers(num1, num2) {    function compare(num1, num2) {        if (num1.length > num2.length) return 1;        if (num1.length < num2.length) return -1;        for (let i = 0; i < num1.length; i++) {            if (num1[i] > num2[i]) return 1;            if (num1[i] < num2[i]) return -1;        }        return 0;    }    const sign = compare(num1.split(''), num2.split(''));    let larger = sign >= 0? num1 : num2;    let smaller = sign >= 0? num2 : num1;    let result = '';    let carry = 0;    for (let i = 0; i < larger.length; i++) {        let diff = parseInt(larger[larger.length - 1 - i]) - (parseInt(smaller[smaller.length - 1 - i]) || 0) - carry;        if (diff < 0) {            diff += 10;            carry = 1;        } else {            carry = 0;        }        result = diff + result;    }    while (result[0] === '0' && result.length > 1) {        result = result.slice(1);    }    return sign < 0? '-' + result : result;}2. 实现一个可暂停、继续的倒计时 React Hookimport { useState, useEffect } from'react';function useCountdown(initialTime) {    const [time, setTime] = useState(initialTime);    const [isRunning, setIsRunning] = useState(true);    let intervalId;    useEffect(() => {        if (isRunning && time > 0) {            intervalId = setInterval(() => {                setTime(prevTime => prevTime - 1);            }, 1000);        } else {            clearInterval(intervalId);        }        return () => clearInterval(intervalId);    }, [isRunning, time]);    const start = () => {        setIsRunning(true);    };    const pause = () => {        setIsRunning(false);    };    return {        time,        start,        pause    };
查看6道真题和解析
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务