📍面试公司:腾讯云智
👜面试岗位:后端开发实习生(2025届)
🕐面试时长:约 95 分钟
🔄面试轮次:第 2 轮技术面
✨ 面试整体节奏:
这场腾讯云智的二面强度非常大,问题量高达 40+ 个,不仅覆盖了基础知识(数据结构、网络协议、数据库),还深挖了实际项目中 Redis、RocketMQ、分布式上传、并发等复杂系统设计问题,最后甚至还加了一道线程协作的手撕代码题。
面试官节奏快、追问多,有种“白袜哥审讯”般的沉浸感 😂。
✅ 面试题目逐题整理与解析:
1. 自我介绍
考察点:表达能力、项目主线清晰度
面试公司:腾讯云智
答案:建议准备项目主线 + 技术栈亮点 + 学习能力 + 实习经历。
2. ArrayList 是如何自动扩容的?
考察点:集合底层实现
面试公司:腾讯云智
答案:ArrayList 底层是数组,扩容触发在添加元素时容量不够,默认扩容为原容量的 1.5 倍(newCapacity = oldCapacity + (oldCapacity >> 1)
)。
3. 扩容时是深拷贝还是浅拷贝?
考察点:内存引用机制
面试公司:腾讯云智
答案:是浅拷贝,只是拷贝了对象引用,实际元素未重新 new。
4. ArrayList 的扩容时机?
考察点:源码细节
面试公司:腾讯云智
答案:在 add 时若 size >= 当前数组长度,则触发扩容。
5. Spring Boot、Spring 中 IOC 和 AOP 是怎么通过注解实现对象注入的?有哪些常用注解?
考察点:IOC/AOP 底层原理
面试公司:腾讯云智
答案:
- 通过反射 + BeanDefinition 注册机制实现;
- 常见注解包括
@Component
、@Service
、@Autowired
、@Qualifier
、@Aspect
、@Around
等。
6. Spring Boot 启动到初始化的流程?
考察点:框架启动流程
面试公司:腾讯云智
答案:主要步骤:构建 SpringApplication
→ 推断环境 → 加载配置 → 创建 ApplicationContext → 扫描组件 → 创建 Bean → 完成启动。
7. MySQL 的事务隔离级别
考察点:事务一致性
面试公司:腾讯云智
答案:
- Read Uncommitted(读未提交)
- Read Committed(读已提交)
- Repeatable Read(可重复读)
- Serializable(可串行化)
InnoDB 默认是可重复读。
8. MySQL 的存储引擎?
考察点:数据库底层原理
面试公司:腾讯云智
答案:常见有 InnoDB(默认,支持事务)、MyISAM(不支持事务)、Memory(内存表)。
9. 不同存储引擎在数据存储上的区别?
考察点:数据库优化选择
面试公司:腾讯云智
答案:
- InnoDB 支持事务、行锁,适合高并发写;
- MyISAM 读写快但不支持事务;
- Memory 放内存中,速度快但断电丢失。
10. SQL 的调优流程?
考察点:SQL 实战能力
面试公司:腾讯云智
答案:
- 分析 SQL 执行计划
EXPLAIN
; - 检查是否命中索引;
- 改写 SQL 结构;
- 增加合适索引;
- 控制返回数据量。
11. 两个事务竞争时如何避免死锁?
考察点:并发控制
面试公司:腾讯云智
答案:
- 控制操作顺序一致;
- 设置合理锁等待时间;
- 减少锁范围(行锁代替表锁)。
12. Redis 在项目中的具体应用?
考察点:缓存实战经验
面试公司:腾讯云智
答案:如缓存用户信息、排行榜、短信验证码、限流、分布式锁。
13. Redis 如何清理过期数据?
考察点:Redis 内存机制
面试公司:腾讯云智
答案:惰性删除 + 定期随机采样清除 + 内存淘汰策略。
14. Redis 底层数据结构?
考察点:内部实现
面试公司:腾讯云智
答案:String(SDS)、List(quicklist)、Set(hashtable)、Hash(ziplist)、ZSet(跳表)、Bitmap、HyperLogLog 等。
15. Redis 主从同步流程?
考察点:主从复制机制
面试公司:腾讯云智
答案:先发送 RDB 快照 + AOF 日志,后续通过异步增量复制。
16. 如何同步从节点对过期数据清理?
考察点:一致性处理
面试公司:腾讯云智
答案:主节点处理过期数据后通过命令传播到从节点,从节点被动删除。
17. Redis 哨兵机制?
考察点:高可用方案
面试公司:腾讯云智
答案:哨兵监听主从节点,自动故障转移 + 通知客户端更新连接。
18. Redis 还有哪些高可用方案?
考察点:系统设计
面试公司:腾讯云智
答案:Cluster 分片方案、Codis 中间件、主从 + Keepalived、Proxy 层解决方案。
19. 分布式锁更优的方案?
考察点:一致性与可用性平衡
面试公司:腾讯云智
答案:
- RedLock(多节点时间漂移问题复杂);
- ZooKeeper(强一致性更可靠);
- 使用数据库乐观锁也可。
20. RocketMQ 和 Kafka 区别?项目中为何用 RocketMQ?
考察点:消息队列选型
面试公司:腾讯云智
答案:RocketMQ 支持事务消息、性能高、Java生态好;Kafka 更偏日志处理、高吞吐大数据场景。
21-22. RocketMQ 是否会导致瞬时压力大?怎么解决?
考察点:系统性能调优
面试公司:腾讯云智
答案:
- 是的,大量消息瞬时消费会带来压力;
- 可通过限流、异步处理、预处理缓存、合理 Topic 分区等方式缓解。
23. HTTP 和 HTTPS 区别?
考察点:网络协议安全
面试公司:腾讯云智
答案:HTTPS = HTTP + SSL/TLS,提供加密、完整性验证、身份认证,防止中间人攻击。
24. HTTPS 是对称还是非对称加密?
考察点:加密原理
面试公司:腾讯云智
答案:握手用非对称加密协商密钥,后续数据传输用对称加密。
25-26. HTTPS 双向认证原理?
考察点:证书机制
面试公司:腾讯云智
答案:客户端和服务器都需要证书,SSL 握手时双向验证身份。
27. 证书合法性校验流程?
考察点:数字证书机制
面试公司:腾讯云智
答案:验证链上所有 CA 签名是否有效,检查证书是否过期、吊销。
28. 签名验证流程?
考察点:非对称加密实践
面试公司:腾讯云智
答案:使用私钥加签,接收方用公钥验签,确认内容未被篡改 + 身份合法。
29. NIO 和 BIO 区别?
考察点:Java 网络编程模型
面试公司:腾讯云智
答案:BIO 一连接一线程,NIO 使用 Selector 实现多路复用,性能更高。
30. select、poll、epoll 区别?
考察点:IO 多路复用模型
面试公司:腾讯云智
答案:epoll 更高效:支持事件驱动、无需遍历、性能 O(1),适合高并发。
31-32. 为什么文件描述符受限?select 为什么限制描述符数量?
考察点:操作系统资源限制
面试公司:腾讯云智
答案:select 用整型数组存储 fd,受限于系统 fd_set 的大小(通常 1024);poll/epoll 无此限制。
33. 项目中 token 的应用?
考察点:认证机制
面试公司:腾讯云智
答案:Token 通常用于用户身份认证,JWT、Session、Redis 存储常见。
34. 如何保证 token 安全?
考察点:信息安全
面试公司:腾讯云智
答案:使用 HTTPS、防重放、设置有效期 + RefreshToken、签名校验等。
35. 指纹被拦截怎么办?如何防止?
考察点:前端指纹安全机制
面试公司:腾讯云智
答案:前端加密、防抓包、HTTPS、防止通过网络劫持或中间人攻击。
36-38. 分片上传的原理及异常处理?
考察点:大文件上传设计
面试公司:腾讯云智
答案:
- 分片并发上传,后端记录每个片;
- 合并前校验顺序和完整性;
- 上传失败可重试,超时片段定时清理。
39-40. 多人同时观看视频的解决方案?
考察点:并发读流量优化
面试公司:腾讯云智
答案:CDN 加速、分布式缓存、分段拉流、HLS 协议、预加载、P2P 辅助加速等。
41. 手撕:N个线程交替输出 0~M,不用锁
考察点:并发编程(极难)
面试公司:腾讯云智
答案思路:使用原子变量、信号量、CAS、线程 ID 取模等方法进行协作控制。
💡总结 & 面试复盘:
腾讯云智这场面试堪称“技术燃尽问卷”,对项目实战、系统设计、并发编程、网络安全等各方面都深挖了细节,是一场对“底层认知 + 工程经验 + 抗压能力”的综合考察。
我的复盘重点:
- 项目要能讲出“原理 + 问题 + 解决”,不能只讲业务流程。
- 多刷分布式设计题,例如 Redis 分布式锁、上传分片、多端并发等。
- 熟练掌握 Java 核心(集合、并发、JVM)+ 常用中间件(MQ、缓存、数据库)。
✊写在最后:
面完这一轮,真的有种打完 BOSS 的感觉。不论结果如何,这场“被燃尽”都是一次成长。愿所有努力都不被辜负,也希望这篇复盘能帮到正在准备腾讯后端实习的小伙伴们!
如果你想看我整理的 Redis 分布式锁方案对比、RocketMQ 项目实践笔记、Java 多线程 50 问,欢迎评论/私信我!