腾讯音乐 移动客户端开发 二面

1. 自我介绍
2. 为什么后端转客户端?
3. 你觉得你项目中最有挑战性的是什么?
4. 两级缓存的数据一致性如何保证?
5. 两级缓存对于网站加载速度提升有多少?接口里面只有查询接口吗?有没有涉及到锁的使用?
6. 你觉得网页加载速度受哪些因素影响?
7. 验证码为什么要放入缓存里?验证码放缓存里不合适吧?放入缓存里如果被重复使用呢?阿里云没有提供过期时间吗?
8. 文件分片怎么做的?
9. 为什么要用base64编码?转为base64后文件会变大多少?上传base64比直接上传文件快了多少?上传一个2G的视频要多久?
10. 你觉得你这个设计有什么问题?(提了AWS S3)
11. 你说的这个怎么会是一个更安全成熟的方案呢?如果是客户需要使用,肯定不可能使用第三方的文件上传服务,肯定是公司开发自己的文件上传服务,就针对你自己设计的方法,你讲讲还有什么优化的地方。
12. 某个分片上传失败了怎么办?从http的角度如何去解决?
13. 跟前端或者客户端对接用的什么协议?
14. 浏览器输入URL之后发生了什么?你刚只说了渲染HTML,那如果还有JS呢?
15. 多线程是怎么做的?对于查询的并发是如何去考虑的?参数怎么设置的?最大线程数为什么只设置为4?
16. 网站的QPS是多少?
17. 智力题:1-1000中有几个7,不用写代码,直接算出来。
18. 除了做的项目,你平时还有哪些方向的拓展?
19. 项目有些需求没做完,ddl马上到了怎么办?
20. 学习成绩怎么样?
21. 平时有什么爱好?
22. 你怎么看待APP未来的发展?
23. 平时会注意一些APP的产品使用体验吗?
24. 平时哪些APP用的比较多?

反问
1. 需要学习哪些东西可以快速上手客户端开发?
2. 后面还有技术面吗?
全部评论
请问第二个问题怎么回答的呀
点赞 回复 分享
发布于 2024-05-15 13:28 江苏
m
点赞 回复 分享
发布于 2024-05-01 19:26 湖北
请问一二面隔了多久
点赞 回复 分享
发布于 2024-04-29 20:43 江苏
什么bg,居然给面了,985✌
点赞 回复 分享
发布于 2024-04-29 20:30 江苏

相关推荐

1. display: none 和 visibility: hidden 的区别• 渲染层面:◦ display: none:元素完全从渲染树移除,不占据空间(回流+重绘)。◦ visibility: hidden:元素仍在渲染树中,占据空间但不可见(仅重绘)。• 子元素影响:◦ display: none:子元素也会被隐藏。◦ visibility: hidden:子元素可通过 visibility: visible 单独显示。2. 三列布局(两边固定,中间自适应)方案1:Flex 布局.container { display: flex; }  .left, .right { width: 200px; }  .center { flex: 1; }  方案2:Calc 计算.center { width: calc(100% - 400px); margin: 0 200px; }  方案3:绝对定位 + margin.container { position: relative; }  .left, .right { position: absolute; width: 200px; }  .center { margin: 0 200px; }  3. 闭包• 定义:函数内部引用外部作用域变量,且变量在外部作用域释放后仍被保留。• 作用:实现私有变量、函数防抖/节流等。• 注意:过度使用可能导致内存泄漏。4. React 状态管理方案及区别方案 特点 ** useState** 组件级状态,适合简单逻辑。 ** useContext** 跨组件状态,适合全局轻量级状态(避免逐层传递 props)。 ** Zustand** 轻量级全局状态管理,基于 Context + immer,支持订阅和模块化。 ** Redux** 复杂全局状态管理,需手动配置 reducer、action 等,适合大型应用。 5. 虚拟列表实现• 核心原理:仅渲染可见区域内的列表项,通过滚动事件动态计算并更新显示内容。• 关键步骤:1. 计算可见区域起始索引和结束索引。2. 渲染对应索引的列表项。3. 通过 transform 或 padding 模拟滚动位置,保持滚动条正常显示。6. React 性能优化• 组件优化:◦ 使用 React.memo 缓存函数组件,避免无必要重渲染。◦ useCallback 缓存回调函数,避免子组件因引用变化重渲染。• 状态优化:◦ 避免在 useState 中存储不必要的状态(如临时计算值)。◦ 使用 useReducer 处理复杂状态逻辑,减少重复更新。• 其他:◦ 虚拟列表/表格(长列表优化)。◦ 懒加载(React.lazy + Suspense)。◦ 避免内联函数在渲染中重复创建。7. React 的状态(补充常见问题)• 状态更新异步性:◦ 合成事件和生命周期中,setState 异步更新,需通过回调获取最新值。◦ 原生事件(如 setTimeout)中,setState 同步更新。• 状态穿透问题:◦ 多层组件传递状态时,可用 useContext 或状态管理库简化。8. 代码题:生成有效括号组合(回溯法)var generateParenthesis = (n) => {    const res = [];    const backtrack = (path, left, right) => {      if (path.length === 2 * n) res.push(path);      if (left < n) backtrack(path + '(', left + 1, right);      if (right < left) backtrack(path + ')', left, right + 1);    };    backtrack('', 0, 0);    return res;  };  思路:通过回溯法枚举所有可能,用 left 和 right 控制左右括号数量,确保任意时刻 right ≤ left 且总数不超过 n。
点赞 评论 收藏
分享
评论
4
21
分享

创作者周榜

更多
牛客网
牛客企业服务