【取他人之面经】腾讯云智后台开发一面

作者:Andrew1219链接:https://www.nowcoder.com/feed/main/detail/8153d4a9dc4d4acaa064eed40af19ad0?sourceSSR=users来源:牛客网

一些碎碎念

最近这段日子,真的感觉自己像个在钢丝上跳舞的人,每一步都走得小心翼翼,生怕一个不小心就摔下去。边实习边投简历测评,这其中的艰辛只有自己最清楚。每天在实习单位忙完一堆工作,拖着疲惫的身体回到家,还得强打起精神筛选合适的岗位,精心修改简历,只为能在众多求职者中脱颖而出。

而学校那边也丝毫不能松懈,各种课程作业、小组项目,还有时不时要和老师同学对接的事项,一件接着一件,感觉就像怎么也忙不完。常常在深夜,当我对着电脑屏幕,眼睛酸痛得不行,还在为了一道测评题绞尽脑汁时,心里会忍不住泛起一阵迷茫和疲惫。

但每当我想要放弃的时候,心底总有个声音在告诉我,这是我喜欢的事业啊。我热爱这个领域,从接触它的那一刻起,就梦想着能在其中闯出一片属于自己的天地。所以,不管前面等待我的结局是什么,我都不能退缩。我要勇敢地去挑战这些未知的事物,用努力和奋斗去浇灌我的梦想。

我知道,找到一份自己真正喜欢的事业并不容易,这条路上会布满荆棘,但路是我自己选的,也只能靠自己一步一个脚印地走出来。我相信,只要我坚持不懈,总有一天,我能站在自己热爱的事业舞台上,闪闪发光。

——————写在边实习边投递暑假实习的第一周 还有很多学校作业等着我

deepseek 的 回答整理

以下是针对面试问题的详细回答建议,结合您的原始回答进行优化和补充:

腾讯云智后台开发一面

  1. 问有没有投腾讯,为什么想投云智
  2. 讲一下项目遇到最大的挑战,答了自己项目中做并行分发调度的点
  3. 你刚才讲到RESTful,RESTful有什么方法,答GET、POST、PUT、DELETE
  4. URL要怎么设计,举了个具体例子,比如/depart/1,答得不好
  5. 那RESTful和RPC有什么区别,答得不好
  6. 根据项目问了更详细的设计,比如调度者怎么对执行者忙碌检测,维护忙碌的状态怎么防止并发修改,执行者很多的情况下怎么维护执行者状态列表,有没有更简单的办法,在面试官引导下基本上回答出来了(应该),提到了一些八股,比如问怎么实现锁,答Java中用synchronized和ReentrantLock,问Redis为什么快,答基于内存、单线程IO多路复用、高效的数据结构,问还有别的原因吗没答上只能想到这些
  7. 开始问八股,问对什么语言熟悉,说Java和Python
  8. 问Java和Python的区别,答Python是解释型,Java是编译成字节码再放到JVM运行,JVM中会动态编译成二进制
  9. 那Java是解释型还是编译型,答更倾向于说成是半编译半解释,扯了下代码缓存会放在元空间
  10. 问Java面向对象,答封装继承多态
  11. 问对多态的理解,答子类有公共属性和方法,然后有它们特有的属性和方法,在使用的时候可以上转型,想扯一下依赖倒转原则然后没讲的很清楚
  12. 问重载和重写的区别,答重载是对同名方法不同传参,重写是子类覆盖父类同名方法
  13. 问TCP和UDP的区别,答它们都在传输层,在网络层之上,网络层不可靠,TCP相比UDP实现了可靠传输
  14. 问TCP连接是怎么建立的,答三次握手过程,自己讲了为什么两次握手不行
  15. 问MySQL事务是什么,答事务是为了解决并发冲突,依次讲了读提交、可重复读、串行化是怎么解决脏读、不可重复读和幻读的
  16. 问对加班的看法
  17. 反问,问业务,说网络加速,问自己有什么可以提升的,说我的经验对于这个学历来说可以了(可能是想表达本科?),可以做更难的项目,在精不在多结束后十几分钟查进度进入复试阶段>v<

作者:Andrew1219链接:https://www.nowcoder.com/feed/main/detail/8153d4a9dc4d4acaa064eed40af19ad0?sourceSSR=users来源:牛客网

deepseek 的 回答整理

以下是针对面试问题的详细回答建议,结合您的原始回答进行优化和补充:

2. 项目最大挑战:并行分发调度

挑战核心:实现高并发任务调度时的资源竞争和状态同步问题解决方案

  1. 分布式锁机制:使用Redis RedLock算法实现跨节点锁,确保同一任务不会被重复分配。
  2. 无锁化设计优化:对高频状态更新采用CAS操作(如AtomicInteger)替代传统锁,提升并发性能。
  3. 状态分片:将执行节点按业务维度分片管理(如Hash分片),降低单点竞争压力。
  4. 心跳检测+超时剔除:执行节点定期上报心跳,调度中心通过滑动窗口算法检测离线节点,自动触发故障转移。技术细节:曾遇到ZooKeeper临时节点监听实现状态维护,但网络波动导致误判,后改用gRPC双向流实现实时状态推送。

3. RESTful方法

标准方法

  • GET:安全幂等的资源获取
  • POST:非幂等的资源创建
  • PUT:幂等的全量更新
  • PATCH:部分更新
  • DELETE:资源删除扩展方法:HEAD(获取元数据)、OPTIONS(查询支持方法)

4. RESTful URL设计规范

设计原则

  1. 资源导向:URL表示资源而非动作(如/departments而非/getDepartments
  2. 层级嵌套:表达资源关系(如/departments/1/employees
  3. 版本控制:在URL或Header中体现(如/api/v1/departments
  4. 过滤分页:Query参数处理(如?page=2&size=20反例改进:原/depart/1建议改为/departments/1,复数形式更符合REST语义。

5. RESTful vs RPC核心区别

维度

RESTful

RPC

通信协议

基于HTTP(应用层)

自定义协议(TCP/UDP等)

设计思想

资源导向(URI为核心)

动作导向(方法调用)

数据格式

JSON/XML(自描述)

二进制协议(高效紧凑)

适用场景

松耦合的开放API

内部高性能服务调用

典型实现

Spring MVC

Dubbo/gRPC/Thrift

6. 调度系统设计优化

关键问题

  1. 忙碌检测
  2. 并发控制
  3. 状态维护优化

7-12. Java八股文深度回答

Q:Java是编译型还是解释型?A:Java采用混合模式:

  1. 前端编译:javac将.java编译为字节码(平台无关的中间代码)
  2. JIT编译:运行时热点代码由JVM(如C2编译器)编译为机器码(代码缓存区)
  3. 解释执行:非热点代码逐行解释执行关键机制:分层编译(-XX:TieredStopAtLevel)、AOT编译(GraalVM)

Q:多态实现原理A

  1. 静态分派:方法重载(编译期确定,根据静态类型)
  2. 动态分派:方法重写(运行期确定,虚方法表机制)
class Animal { void eat() { ... } }  // 虚方法表索引0
class Dog extends Animal {
    @Override void eat() { ... }    // 虚方法表索引0指向新实现
}
  1. JVM实现:通过invokevirtual指令查找对象实际类型的虚方法表

13-15. 网络/数据库进阶

TCP三次握手深层原因

  1. 防止历史连接:若客户端旧SYN滞留网络,服务端响应后客户端通过RST终止连接
  2. 序列号同步:两次握手无法保证双方序列号被正确确认(可能导致数据错乱)

MySQL事务隔离实现

隔离级别

实现机制

问题解决

READ COMMITTED

每次读创建新ReadView

脏读

REPEATABLE READ

首次读创建ReadView(MVCC)

不可重复读

SERIALIZABLE

间隙锁+Next-Key Lock

幻读

16. 加班看法

"我认为技术攻关时期适当的加班是必要的,但更倡导通过提升个人效率和团队协作来减少不必要的加班。例如在项目中通过代码评审减少返工、使用CI/CD自动化流程提升交付效率。对于紧急项目,我会主动承担责任,但同时会思考如何优化架构设计来降低后续维护成本。"

17. 反问建议

进阶方向

  1. "您提到可以挑战更复杂的项目,请问团队目前在分布式调度方向有哪些技术规划?是否涉及K8s调度器扩展或自研调度框架?"
  2. "网络加速领域是否会涉及QUIC协议优化或智能路由算法?我是否有机会参与相关技术预研?"

以上回答结合原理深度与实践经验,既展示技术功底,又体现工程化思维,适合中高级岗位面试。

#牛客创作赏金赛##腾讯云智研发2025实习生招聘#
时雨h 的实习 面试记录 文章被收录于专栏

时雨h 的实习 面试记录

全部评论
佬,腾讯云base地哪里?
点赞 回复 分享
发布于 2025-04-10 22:08 江西
deepseek面经很详细
点赞 回复 分享
发布于 2025-04-10 10:20 江苏

相关推荐

2025-12-30 00:09
南阳师范学院 Java
鼠鼠我是一个27届学院本,感觉学的是个“炮灰”专业————智能感知工程,专业大类来讲是仪器类,但是实际学的又和电子信息专业的一起上课同属于物电学院,其实在当时高考报名的时候我记得这个专业是和电子信息放一起的,但是不知道为什么变成了仪器,也许从一开始的插曲也注定着这趟旅程是曲折迂回的。说来也是可笑,现在已经是两年半了,大一真的挺热忱的,想着有了高中学习的经验在大学一定要好好上课学习,实际总是事与愿违,在第一次跟不上上课节奏想着看网课去补的时候就已经开始走下坡路了,后续的结果也是顺利的玩了一年。在上大学的时候就有想过毕业之后是要去工作还是考研,考公,特别的迷茫,也会想着有没有可能有别的出路但是我还不知道,在网上兜兜转转又回到最开始的岔路口。又经历了半年多的时间,到了大二下学期的时候转折来了。我印象特别深,那个时候是晚上,我突然就想通了,我不想去考研,我觉得我这个人就不适合上大班课去学习,就不适合这条路,我要找工作。那个时候毕竟是晚上,晚上相对来说比较感性一点嘛,虽然当时也去把这个想法给ai说了一下😂想着让它给我分析分析。不过过了一段时间我发现我的意愿还是想直接工作,暂时的迷茫结束了,新的曲折又开始了,要从事哪方面的工作?嵌入式?还是跨行?我有尝试过去学习我这个专业的相关知识,但是我发现我真是学不下去,尤其是那个模电,单片机真感觉是搞不懂。偶然的机会我接触到了计算机这个行业,当时也没研究行情啥的,感觉不错就想着学试试,一开始从c++开始学(这里真的要狠狠感谢黑马,简直是我这一生难遇的贵人)基本知识学了不少,一直学到容器之前的部分就停住了,我又开始迷惘了,学完c++之后呢当时也没看到有什么学习路线,又暂停了一段时间去找方向,这个时候再次更深入的了解了计算机这个行业,发现只是结合我自身+就业行情来说不是很容易,想着要不然换别的语言吧,当时有看到Java但是对他了解特别少,相对来说我可能更知道Python,所以又尝试了Python一段时间,其实那个时候ai还没有出现爆发式的增长,只是感觉这个语言挺简洁的,也是因为有了c++的基础学的也挺顺利。对于Python我没有像c++一样去b站看网课,我也是在网上取取经,找了个类似于闯关的学习Python网站,这个学习的时间更短,后来又找了一个网站,是关于深度学习的,当时感觉特别特别复杂特别的难,小问题我都要想半天,而且一丁点基础都没有,所以在这个情况下我又停下了,在网上兜兜转转之后,原来这个语言更严苛一点,彻底没招了,当时只觉得计算机就三个语言,自然而然的我尝试了Java。在尝试了学习Java一段时间之后,终于在2025年5月21日下定决心要学Java。当时是找到了别人的学习路线,要看特别多的网课,也或许本身学习习惯就不好,也或许太想快点学完了,就只是抱着电脑看网课,就真的是纯看,看完一集赶下一集,有时候都是开着1.5倍速看的,我现在真的是特别后悔,真的是浪费了太多时间了,走了一个超级大的弯路。这种学习方式可以说是纯心理安慰一丁点用都没有,后来察觉到也没想着换种方式,还在自我安慰想着这也算是拓展知识面,先了解后续再加强印象,真是太后悔了。一些耳熟能详的道理时常挂在嘴边但就是做不到,在这个快节奏的时代,真的要做一个慢节奏的人,一步一个脚印是不会错的。不过还好,本来预期想着寒假找一个小厂实习的,现在也快放假了还在背八股,在这个情况下也算是把我自己给救过来了。现在真的知道着急了,天天两眼一睁就是图书馆,背不完的八股,都是自找的,也是活该。值得庆幸的是,我还有时间,我也意识到了问题,而且也正在改进,总的来说这一年过的漫长而曲折,还是有药可救的。希望在新的一年我能够始终践行一步一个脚印,踏踏实实走完每一步,通往成功的道路总是漫长而布满荆棘,唯有想的开,挺得住,方能抵达胜利彼岸。只要还在向前走,就一定有可能,加油各位
2025年终总结
点赞 评论 收藏
分享
评论
5
13
分享

创作者周榜

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