腾讯面经-腾讯后端开发岗面经-03
- 时间
- 2026-05
- 来源
- 牛客网
《面试题目》
- 怎么实现多轮对话过程中,根据用户反馈自我调整的功能?
- 手撕:如果要查一个日志的第n列,排序,去重,怎么做
- 手撕:在Java中循环拼接字符串,可能要拼接几万次,使用什么类型去拼接比较合适?String、StringBuilder、StringBuffer?
- 如何处理 Agent 执行失败或超时?
- 手撕:若私有知识库没内容,但模型输出是对的,怎么办?
- FastAPI + SSE 高并发下的瓶颈与重新设计?
- 蒸馏时如何防止小模型学到大模型的错误推理链?
- C++ 多态是如何实现的?
- C++ 的内存模型?
- Python 的 GIL 锁是什么?
- 如何优化 Python 性能?
- HTTPS 与 HTTP 的差异?
- 公钥与私钥是什么?
- 手撕:对称加密算法有哪些?
- 死锁的概念、产生原因及解决办法?
- 僵尸进程是什么?
- 进程与线程的区别?
- 数据库 4 个隔离级别及其实现?
- 如何避免缓存雪崩、击穿、穿透?
- 了解哪些软件工程设计模式?
- 手撕:两道手撕题,最短路径和还有一道信封套娃
- 手撕:用的什么算法转的
- 手撕:会不会有哈希冲突
- 手撕:如何解决哈希冲突
- 如何设计一个没有冲突的系统
- 讲一下IO多路复用
- s中SSL/TLS讲一下
- 手撕:给一段Transcational的代码
- 手撕:有没有通过算法模型推测用户喜好,如何给用户推荐美食,一直拉其他业务数据合适吗
- 手撕:C 系统如何根据用户实时数据优化算法模型
- 手撕:了解哪些消息队列,如何保证数据不丢失,消息积压怎么办
- 手撕:删除链表的倒数第 N 个结点
- 手撕:LRU 缓存
- 介绍一下实习
- 说一下你实习中遇到的难点
- 你这里可以用Redis原子操作指令,说一下Redis自带的原子操作指令,不用Lua
- 手撕:哈希冲突除了拉链法还有哪些方法?详细讲一下
- 红黑树具体是怎么实现的?
- B+树的结构和用途?
- TCP四次挥手的过程和目的?
- TIME_WAIT发生在什么时候?TIME_WAIT过多的情况如何优化?
- TCP和UDP的区别?什么场景下适合使用UDP?
- 手撕:TCP的滑动窗口是如何实现的?原理是什么?
- IO多路复用有哪些方式?netty了解吗?
- 手撕:线程队列如何设计?
- 手撕:(1)顺时针旋转矩阵输出(2)实现hash拉链法的增删改查
- 你实习做的设备特征缓存需求,具体介绍一下。
- 这个项目的背景是什么?你们团队在做什么?
- 你这里说的“特征”具体是什么?它的数据源是什么?怎么生成这个特征?
- 这些特征最终怎么分类?拿到这些特征之后主要用来做什么?
- 手撕:训练出来的模型最终输出是什么?又是怎么反过来指导你这块工作的?
- 你这个两秒、十秒和九十秒这三档缓存,对应的分别是什么样的特征?
- 你说的这些特征,你是知道它到底对应的是哪种用户行为,或者哪一类设备的吗?
- 大概介绍一下另一个 AI 投资分析系统项目。
- 这个项目当时用的模型是哪一家的?
- 效果怎么样?你自己有测过吗?
- 你刚才说某支股票的历史行情数据,这些数据是从哪里采的?
- 这个项目是你自己主动规划去做的,不是哪个公司或者老师布置给你的,是吧?
- 你平时会自己研究 AI 相关的内容,是吧?
- 机器学习、强化学习这些你都了解过,是吧?
- 机器学习里的高斯混合模型,你能讲一下它的原理吗?
- 手撕:你觉得神经网络里最重要的一个算法,比如在拟合过程中最核心的是什么?
- 反向传播你了解吗?
- 你有手推过反向传播吗?
- 阿里的千问你有用过吗?
- 混元你知道吗?
- C++ 的智能指针你用过吗?
- C++ 里面总共有多少种智能指针?每一种的用法和应用场景是什么?
- C++ 在 main 函数执行之前,还有哪些函数会先执行?
- 如果 const 加在成员函数后面,它的作用是什么?
- 手撕:如果一个链表里有环,怎么判断它有没有环?
- UDP 你了解吗?
- 为什么使用rabbit mq和rocket mq?不用kafka? 你说kafka会丢数据,知道什么情况下会丢吗?
- 微服务相比单体服务有什么优势?
- 微服务可能会有什么劣势?
- 从hive到mq同步数据,为什么中间要用mq,不能直接同步?
- MySQL是怎么使用binglog的?用于数据同步? 那全量同步和增量同步是什么区别?
- redolog和undolog是干什么的?事务的每个隔离级别是靠什么实现的?
- 知道MVCC是怎么用的吗?
- 知道MySQL的底层结构吗?
- 为什么用b+树?不用b树和红黑树?
- 手撕:会用哈希当索引吗?
- 知道覆盖索引吗?
- 覆盖索引有什么好处?
- 你现在还在实习吗?
- 说一下你实习时候的工作。
- 这几项工作都是你独立做的吗?你主要负责哪一个?
- RAG和传统搜索有什么区别?
- 为什么不直接用关键词检索?
- 举个例子,智能体和大模型怎么交互、协同?工作流程是什么?
- 检索这块你做过效果上的优化吗?
- 怎么保证积分可靠性,防止多扣/多增?
- 分布式锁原理大概是什么?
- SETNX 的功能是什么?
- 加锁后进程异常退出,锁泄露怎么办?
- 介绍一下 Spring AI 这个框架。
- 是用 workflow 方式搭建的 agent 吗?
- 用 Spring AI 写一个 agent 的过程大概是什么样的?
- 整个过程完全是大模型自己决策吗?
- 还接触过其他 Agent 开发框架吗?
- 进程和线程有什么区别?
- 线程之间哪些内存是共享的?
- CAS 是什么?
- ThreadLocal 有什么作用?原理是什么,怎么实现线程隔离?
- Kafka 分区的目的是什么?压力具体指什么?
- 手撕:实际自己搭建、使用过消息队列吗?
- 为什么选用 RocketMQ,而不是 Kafka?
- 手撕:延迟队列是怎么实现的?
- A 系统讲讲亮点
- 手撕:Kafka 是否天然支持优先级队列,如何实现优先级队列和延迟队列
- 手撕:了解哪些限流算法,各自优缺点
- 手撕:全排列 II
- 手撕:算法题三道
- 要是mq占据大量CPU该怎么排查?MySQL占据大量CPU该怎么排查?
- 假如说让你实现视频点赞功能,你打算怎么设计?讲讲思路
- 手撕:Rabbit mq的队列是怎么实现的?
- 手撕:一个任务调度器
- 手撕:有没有用过ai写代码
- 手撕:最大连续 1 的个数 II
- 手撕:说说你了解的比较熟悉的技术栈
- 说说进程和线程区别,线程是不是越多越好
- tcp为什么三次握手不是两次?
- https相比http具体还用了什么协议?
- 手撕:参与了哪些地方,用到什么技术栈。
- 手撕:反转链表
- 手撕:链表的中间节点
- 手撕:有哪些消息队列
- 手撕:Redis 怎么实现延迟队列
- 手撕:树的广度(BFS)
- 手撕:树的最长路径
- 手撕:消息队列如何保证顺序消费
- 手撕:非hot100、非leetcode大概中等难度的题
- 手撕:如何快速排查代码运行问题?
- 手撕:实现一个简单的可以扩容的HashMap,包括put get remove resize
- 主流AI的概念,LLM、RAG、AGENT、SKILL?
- 怎么设计一个prompt?
- 要设计一个登陆业务,如何保证通讯安全和数据安全?
- md5加密也不安全,如何完善?
- 介绍一下你的项目,主要做了什么?有什么难点?
- 项目中为什么同时用MySQL和ES?只用一个不行吗?
- 两个数据库的数据是一样的吗?
《参考解析》
- 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
- 回答AI相关问题时应结合具体项目说明如何设计Prompt、评估效果以及处理边界情况(如幻觉、超时),并展示对模型能力边界的清晰认知。
- 算法题先明确边界条件与不变量,再选择合适的数据结构;双指针、哈希表、递归/迭代是常见工具,目标是把复杂度控制在线性或对数级别。
- 进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态的轻量级调度单位,切换成本远低于线程,但需要语言/运行时支持。
- LRU的核心是维护访问顺序,常见实现是哈希表+双向链表,做到O(1)的读写与淘汰;Linux内核用近似LRU(多级链表冷热分区)避免维护严格顺序带来的开销。
- 红黑树是内存内的平衡二叉树,追求单点操作的对数复杂度;B+树针对磁盘/索引场景做了扇出优化,减少IO次数,更适合范围查询和顺序扫描。
- 介绍项目时应说明背景、个人分工、遇到的技术难点及解决方案,并量化收益(性能提升、成本下降等),便于面试官追问细节。
- Spring/Spring Boot的核心是IOC容器与AOP,理解Bean生命周期、自动装配原理和常见starter的加载顺序是回答这类问题的关键。
- CAS通过比较并交换实现无锁更新,失败后需要重试;库存扣减等高竞争场景可以引入版本号或分段计数减少冲突概率,避免忙等消耗过多CPU。
- CPU飙高排查一般先用top/htop定位进程,再用jstack/pstack抓线程栈,结合火焰图找到热点方法,常见原因是死循环、频繁GC或锁竞争。