面灵AI

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

时间
2026-03
来源
牛客网

《面试题目》

  1. 手撕:滑窗算法 + SQL
  2. 手撕:RocketMQ 怎么保证消息队列可靠、幂等,不重不漏
  3. Redis 分布式锁有什么用,限流器怎么做,为什么用 Redis 锁,设计一个分布式高可用的锁
  4. 设计一个秒杀系统
  5. 设计一个数据结构,用于在搜索框中搜索人名(不知道是不是这个意思,答了字典树这个结构)
  6. 生产者顺序影响吗,消费者如何接收?
  7. RAG流程?
  8. RAG切片策略?
  9. AI辅助编程,有什么好的心得?策略?
  10. MCP用过吗?干什么的?
  11. 手撕:栈和堆的内存增长方向
  12. 讲一下 I/O 多路复用
  13. 手撕:TCP 三次握手,特别是为什么要第三次握手
  14. 你是如何解决这个超卖问题的?
  15. 手撕:算法题:前K个高频词的统计与排序 (leetcode 692)
  16. 说说HTTP的发展历程,HTTP/1.1、HTTP/2、HTTP/3有什么区别
  17. 手撕:TCP的滑动窗口机制是什么?它能变小或向左移动吗
  18. 手撕:TCP第一次真正发送数据是在什么时候
  19. 手撕:二维递增大数组的元素查询
  20. 手撕:数学算法
  21. 手撕:简单算法
  22. 手撕:最小路径和
  23. 手撕:如何做流式输出
  24. 手撕:64.最小路径和 ez)
  25. 你是如何看待线程安全的?
  26. volatile关键字可以用来修饰方法嘛?
  27. synchronized和volatile有什么区别?
  28. volatile会导致线程阻塞嘛?
  29. Mybatis的缓存机制?
  30. 什么情况下会导致频繁Full GC?
  31. MySQL优化实践?
  32. 你要做一个简易QQ,你会用哪些类型的数据结构?
  33. SpringBoot如何解决跨域?
  34. SpringBoot启动类中有哪些注解?
  35. 大模型知识了解?
  36. 手撕:如何做流式输出?
  37. 你项目中用到的RAG是有什么用?
  38. 手撕:实习拷打 项目?代码?性能、功能测试
  39. 什么是虚拟内存,作用?
  40. 接口和抽象类的区别是什么?分别能不能new对象?
  41. 有用过匿名内部类吗?介绍一下
  42. 多态是什么,详细介绍一下
  43. 你常用的Redis数据类型有哪些?
  44. Redis中存在大Key会有什么影响?为什么导致执行速度慢?
  45. 介绍一下聚集索引和二级索引
  46. 项目中的加密存储如何实现的?盐是什么?
  47. 手撕:四道算法题(前两题简单)
  48. 手撕:比特翻转问题
  49. 手撕:柱状图中最大的矩形面积
  50. 为什么大对象的分配性能相对较差?在实际项目中应该如何优化大对象的使用?
  51. 内存分配器是如何协助垃圾回收器工作的?
  52. 使用过sync.Pool吗?它与内存分配器有什么关系?
  53. 假设你发现应用的GC时间过长,可能是什么内存分配模式导致的?你会如何分析和优化?
  54. 负责模块的架构设计及原因?
  55. 有没有处理过CPU高和内存高的问题?如何解决的?
  56. 如何解决项目中锁竞争比较频繁的情况?
  57. 项目里的MySQL主从延迟产生后,从哪些层面可以避免?
  58. MySQLMVCC的,本原理,RR下幻读问题如何解决,间隙锁死锁原因与排查思路,如何预防?
  59. redolog的在磁盘上的存储方式,落盘的策略有哪些,什么情况下使用哪种策略?
  60. RabbitMQ的镜像集群与晋通集群有什么区别,如何保证高可用,消息的持久化机制?
  61. 手撕:.LRU缓存实现,要求set\get操作o(1)时
  62. 手撕:最长无重复字符串的子串长度(滑动窗口+哈希)
  63. java锁的实现方式?
  64. Golang中的GMP调度模型是如何工作的?P的作用是什么?
  65. Golang的逃逸分析机制是什么?如何进行内存分配优化?
  66. sync.Map是如何实现并发安全的?与加锁的map有什么区别?
  67. Golang的反射原理是什么?什么场景下应该使用反射?
  68. 手撕:TCP的拥塞控制算法有哪些?BBR算法的工作原理是什么?
  69. Websocket协议是如何实现全双工通信的?与HTTP长轮询有什么区别?
  70. 什么是零拷贝技术?在Golang中如何实现零拷贝?
  71. Linux进程的虚拟地址空间是如何布局的?
  72. 什么是CPU的NU架构?对程序性能有什么影响?
  73. 容器与虚拟机的本质区别是什么?容器是如何实现资源隔离的?
  74. 手撕:分布式一致性哈希算法是如何工作的?如何解决节点动态增减的问题?
  75. 手撕:什么是Paxos算法?Basic Paxos和Multi-Paxos的区别是什么?
  76. 分布式系统如何实现服务发现和健康检查?
  77. 什么是分布式系统的脑裂问题?如何避免?
  78. 手撕:设计一个算法来统计海量数据中出现次数最多的前K个元素
  79. 一个类有public和private的两个虚方法,并且有int、double、char三个变量,请问类占多大大小?
  80. 讲一下C++中虚函数表用来干什么的?原理是什么?常用来解决什么问题?
  81. 虚函数表所占的地址空间是什么样的?内存分布是什么样的?
  82. 虚函数表和每个类有关还是和每个对象有关?
  83. 一个类声明了一个对象指针,这个类可以调用这个对象的私有方法吗?如何调用私有方法?
  84. C++ 怎么管理内存的?它对内存管理常见的问题有什么?
  85. 手撕:堆栈内存使用过程中常见的问题
  86. 提到R AII 思想可以解决,讲一下C加加提供哪几套智能指针
  87. shared_ptr 有哪些函数有了解吗?
  88. 能在构造函数中调用shared_for_this吗?
  89. 讲一下const的作用
  90. 项目中遇到程序崩溃该怎么调试?
  91. 如果项目已经发布到线上了呢?该怎么调试?
  92. 手撕:代码题:随便写一个常用的排序算法
  93. 流量高 怎么预防?
  94. 既然提到了nginx负载均衡 你知道哪些负载均衡的方法?
  95. 某个分片上传时间超过了24小时,因此被定时任务清理掉了,应该怎么办?
  96. 手撕:写完让讲一下RESP对数组编码的思路,以及解码器的思路
  97. 需求都是谁提出来的,是去之后给出现成的需求还是说其他?
  98. 线程池用来干嘛,是导出吗?
  99. 通过线程池导出的数据是无序,还是保持有序?
  100. 每个线程结束的时间不一样,如何保持有序的?
  101. 如果中间有一个线程一直没有返回结果如何优化?
  102. 为什么要用redis缓存数据,需求是什么?
  103. 项目中的访问量有多少,qps大概是多少是一个什么样的量级,单位?
  104. 你说有热点数据和普通商品,对热点数据葯多经没有额外的存储?
  105. 抛开你这个实习,redis中的热key是怎么处理的?
  106. redis的过期时间应该如何设置,你在实习中设置了多久?
  107. 手撕:2️⃣消息队列
  108. 手撕:3️⃣一个字符串,针对其空格字符,进行原地删除并记录数量

《参考解析》

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