面灵AI

腾讯面经-腾讯后端开发岗面经-03

时间
2026-05
来源
牛客网

《面试题目》

  1. 怎么实现多轮对话过程中,根据用户反馈自我调整的功能?
  2. 手撕:如果要查一个日志的第n列,排序,去重,怎么做
  3. 手撕:在Java中循环拼接字符串,可能要拼接几万次,使用什么类型去拼接比较合适?String、StringBuilder、StringBuffer?
  4. 如何处理 Agent 执行失败或超时?
  5. 手撕:若私有知识库没内容,但模型输出是对的,怎么办?
  6. FastAPI + SSE 高并发下的瓶颈与重新设计?
  7. 蒸馏时如何防止小模型学到大模型的错误推理链?
  8. C++ 多态是如何实现的?
  9. C++ 的内存模型?
  10. Python 的 GIL 锁是什么?
  11. 如何优化 Python 性能?
  12. HTTPS 与 HTTP 的差异?
  13. 公钥与私钥是什么?
  14. 手撕:对称加密算法有哪些?
  15. 死锁的概念、产生原因及解决办法?
  16. 僵尸进程是什么?
  17. 进程与线程的区别?
  18. 数据库 4 个隔离级别及其实现?
  19. 如何避免缓存雪崩、击穿、穿透?
  20. 了解哪些软件工程设计模式?
  21. 手撕:两道手撕题,最短路径和还有一道信封套娃
  22. 手撕:用的什么算法转的
  23. 手撕:会不会有哈希冲突
  24. 手撕:如何解决哈希冲突
  25. 如何设计一个没有冲突的系统
  26. 讲一下IO多路复用
  27. s中SSL/TLS讲一下
  28. 手撕:给一段Transcational的代码
  29. 手撕:有没有通过算法模型推测用户喜好,如何给用户推荐美食,一直拉其他业务数据合适吗
  30. 手撕:C 系统如何根据用户实时数据优化算法模型
  31. 手撕:了解哪些消息队列,如何保证数据不丢失,消息积压怎么办
  32. 手撕:删除链表的倒数第 N 个结点
  33. 手撕:LRU 缓存
  34. 介绍一下实习
  35. 说一下你实习中遇到的难点
  36. 你这里可以用Redis原子操作指令,说一下Redis自带的原子操作指令,不用Lua
  37. 手撕:哈希冲突除了拉链法还有哪些方法?详细讲一下
  38. 红黑树具体是怎么实现的?
  39. B+树的结构和用途?
  40. TCP四次挥手的过程和目的?
  41. TIME_WAIT发生在什么时候?TIME_WAIT过多的情况如何优化?
  42. TCP和UDP的区别?什么场景下适合使用UDP?
  43. 手撕:TCP的滑动窗口是如何实现的?原理是什么?
  44. IO多路复用有哪些方式?netty了解吗?
  45. 手撕:线程队列如何设计?
  46. 手撕:(1)顺时针旋转矩阵输出(2)实现hash拉链法的增删改查
  47. 你实习做的设备特征缓存需求,具体介绍一下。
  48. 这个项目的背景是什么?你们团队在做什么?
  49. 你这里说的“特征”具体是什么?它的数据源是什么?怎么生成这个特征?
  50. 这些特征最终怎么分类?拿到这些特征之后主要用来做什么?
  51. 手撕:训练出来的模型最终输出是什么?又是怎么反过来指导你这块工作的?
  52. 你这个两秒、十秒和九十秒这三档缓存,对应的分别是什么样的特征?
  53. 你说的这些特征,你是知道它到底对应的是哪种用户行为,或者哪一类设备的吗?
  54. 大概介绍一下另一个 AI 投资分析系统项目。
  55. 这个项目当时用的模型是哪一家的?
  56. 效果怎么样?你自己有测过吗?
  57. 你刚才说某支股票的历史行情数据,这些数据是从哪里采的?
  58. 这个项目是你自己主动规划去做的,不是哪个公司或者老师布置给你的,是吧?
  59. 你平时会自己研究 AI 相关的内容,是吧?
  60. 机器学习、强化学习这些你都了解过,是吧?
  61. 机器学习里的高斯混合模型,你能讲一下它的原理吗?
  62. 手撕:你觉得神经网络里最重要的一个算法,比如在拟合过程中最核心的是什么?
  63. 反向传播你了解吗?
  64. 你有手推过反向传播吗?
  65. 阿里的千问你有用过吗?
  66. 混元你知道吗?
  67. C++ 的智能指针你用过吗?
  68. C++ 里面总共有多少种智能指针?每一种的用法和应用场景是什么?
  69. C++ 在 main 函数执行之前,还有哪些函数会先执行?
  70. 如果 const 加在成员函数后面,它的作用是什么?
  71. 手撕:如果一个链表里有环,怎么判断它有没有环?
  72. UDP 你了解吗?
  73. 为什么使用rabbit mq和rocket mq?不用kafka? 你说kafka会丢数据,知道什么情况下会丢吗?
  74. 微服务相比单体服务有什么优势?
  75. 微服务可能会有什么劣势?
  76. 从hive到mq同步数据,为什么中间要用mq,不能直接同步?
  77. MySQL是怎么使用binglog的?用于数据同步? 那全量同步和增量同步是什么区别?
  78. redolog和undolog是干什么的?事务的每个隔离级别是靠什么实现的?
  79. 知道MVCC是怎么用的吗?
  80. 知道MySQL的底层结构吗?
  81. 为什么用b+树?不用b树和红黑树?
  82. 手撕:会用哈希当索引吗?
  83. 知道覆盖索引吗?
  84. 覆盖索引有什么好处?
  85. 你现在还在实习吗?
  86. 说一下你实习时候的工作。
  87. 这几项工作都是你独立做的吗?你主要负责哪一个?
  88. RAG和传统搜索有什么区别?
  89. 为什么不直接用关键词检索?
  90. 举个例子,智能体和大模型怎么交互、协同?工作流程是什么?
  91. 检索这块你做过效果上的优化吗?
  92. 怎么保证积分可靠性,防止多扣/多增?
  93. 分布式锁原理大概是什么?
  94. SETNX 的功能是什么?
  95. 加锁后进程异常退出,锁泄露怎么办?
  96. 介绍一下 Spring AI 这个框架。
  97. 是用 workflow 方式搭建的 agent 吗?
  98. 用 Spring AI 写一个 agent 的过程大概是什么样的?
  99. 整个过程完全是大模型自己决策吗?
  100. 还接触过其他 Agent 开发框架吗?
  101. 进程和线程有什么区别?
  102. 线程之间哪些内存是共享的?
  103. CAS 是什么?
  104. ThreadLocal 有什么作用?原理是什么,怎么实现线程隔离?
  105. Kafka 分区的目的是什么?压力具体指什么?
  106. 手撕:实际自己搭建、使用过消息队列吗?
  107. 为什么选用 RocketMQ,而不是 Kafka?
  108. 手撕:延迟队列是怎么实现的?
  109. A 系统讲讲亮点
  110. 手撕:Kafka 是否天然支持优先级队列,如何实现优先级队列和延迟队列
  111. 手撕:了解哪些限流算法,各自优缺点
  112. 手撕:全排列 II
  113. 手撕:算法题三道
  114. 要是mq占据大量CPU该怎么排查?MySQL占据大量CPU该怎么排查?
  115. 假如说让你实现视频点赞功能,你打算怎么设计?讲讲思路
  116. 手撕:Rabbit mq的队列是怎么实现的?
  117. 手撕:一个任务调度器
  118. 手撕:有没有用过ai写代码
  119. 手撕:最大连续 1 的个数 II
  120. 手撕:说说你了解的比较熟悉的技术栈
  121. 说说进程和线程区别,线程是不是越多越好
  122. tcp为什么三次握手不是两次?
  123. https相比http具体还用了什么协议?
  124. 手撕:参与了哪些地方,用到什么技术栈。
  125. 手撕:反转链表
  126. 手撕:链表的中间节点
  127. 手撕:有哪些消息队列
  128. 手撕:Redis 怎么实现延迟队列
  129. 手撕:树的广度(BFS)
  130. 手撕:树的最长路径
  131. 手撕:消息队列如何保证顺序消费
  132. 手撕:非hot100、非leetcode大概中等难度的题
  133. 手撕:如何快速排查代码运行问题?
  134. 手撕:实现一个简单的可以扩容的HashMap,包括put get remove resize
  135. 主流AI的概念,LLM、RAG、AGENT、SKILL?
  136. 怎么设计一个prompt?
  137. 要设计一个登陆业务,如何保证通讯安全和数据安全?
  138. md5加密也不安全,如何完善?
  139. 介绍一下你的项目,主要做了什么?有什么难点?
  140. 项目中为什么同时用MySQL和ES?只用一个不行吗?
  141. 两个数据库的数据是一样的吗?

《参考解析》

  1. 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
  2. 回答AI相关问题时应结合具体项目说明如何设计Prompt、评估效果以及处理边界情况(如幻觉、超时),并展示对模型能力边界的清晰认知。
  3. 算法题先明确边界条件与不变量,再选择合适的数据结构;双指针、哈希表、递归/迭代是常见工具,目标是把复杂度控制在线性或对数级别。
  4. 进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态的轻量级调度单位,切换成本远低于线程,但需要语言/运行时支持。
  5. LRU的核心是维护访问顺序,常见实现是哈希表+双向链表,做到O(1)的读写与淘汰;Linux内核用近似LRU(多级链表冷热分区)避免维护严格顺序带来的开销。
  6. 红黑树是内存内的平衡二叉树,追求单点操作的对数复杂度;B+树针对磁盘/索引场景做了扇出优化,减少IO次数,更适合范围查询和顺序扫描。
  7. 介绍项目时应说明背景、个人分工、遇到的技术难点及解决方案,并量化收益(性能提升、成本下降等),便于面试官追问细节。
  8. Spring/Spring Boot的核心是IOC容器与AOP,理解Bean生命周期、自动装配原理和常见starter的加载顺序是回答这类问题的关键。
  9. CAS通过比较并交换实现无锁更新,失败后需要重试;库存扣减等高竞争场景可以引入版本号或分段计数减少冲突概率,避免忙等消耗过多CPU。
  10. CPU飙高排查一般先用top/htop定位进程,再用jstack/pstack抓线程栈,结合火焰图找到热点方法,常见原因是死循环、频繁GC或锁竞争。