秋招杭州某游戏公司面经
《面试题目》
- 🕐面试时间:2025.10
- 💻面试岗位:Java后端
❓面试问题:
- 自我介绍
- 为什么要做这两个项目
- 项目里用哪些集合比较多(回答了 List 和 HashMap)
- 在删除跟查询比较多的场景下,用哪个集合较多
- 讲讲 HashMap 的底层(回答了扩容机制)
- 项目里的线程池是怎么配的
- 有压测过项目吗,能达到多少的QPS
- 如果你发现接口的速度很慢,要怎么排查
- 讲一下项目里的日志设计,是怎么实现的
- Spring 中注入用的是哪个注解?
- 讲讲 @Autowired 和 @Resource 的区别
- 讲一下你对 MySQL 的理解
- 你是怎么理解事务的
- 你在使用事务的时候,用的是哪个隔离级别
- 讲讲事务的隔离级别
- 你是怎么优化你的索引的
- 怎么理解最左前缀原则
- 你是怎么排查 SQL 语句的是否存在问题
- 索引类型除了 B+树,还有哪些类型
- 用的是什么缓存(Redis),用它的哪些数据类型
- Redis 中 String 类型的底层是怎么实现的
- 项目中用到哪些锁,为什么不考虑使用 Redis 锁(因为我的是单机项目,这里说了一下 Redis 分布式锁怎么实现)
- 有用 Redis 设置失效时间吗,Redis 的失效策略是什么
- 讲一下 Redis 的持久化,两个有什么区别
- 实习时遇到做不了或者不合理的需求你会怎么做
- 如果遇到一个进度很急的需求,今天提出来明天就要,你会怎么做
- 怎么看待加班
- 对自己的成长规划,三年后的目标是什么
- 你希望后续公司能给你带来什么,哪些东西是你比较期待的
- 自我介绍
- 上次实习为什么离职
- 实习的内容是什么,有什么收获
- 为什么会选择上家实习公司
- 为什么这么迫切出来实习
- 个人情况
- 讲一下单链表和双链表,有什么区别,哪些场景下会使用到它们
- 堆和栈你是怎么理解的
- 为什么要做这两个项目
- 讲讲项目中 JWT + Redis 身份认证的实现原理
- Redis 为什么快,MySQL 不也有索引吗
- Docker 你是怎么用的
- 为什么要拿 Redis 和 ElasticSearch 来存储热点数据
- 实习里做的东西,怎么优化 SQL 的
- 课外是怎么学习的,学过哪些技术和代码
- 讲一下你在学校里的日常生活
- 从在校学生转变成公司员工,心态上会有哪些变化
- 选择一家公司的时候,会有哪些考虑,把这些考虑因素排个序
- 你觉得自己性格上是个怎么样的人
- 实习遇到的难题,怎么解决不太好完成的工作
- 有没有遇到一些低谷期,怎么克服的
- 你是怎么提升自己技术能力的
- 你觉得自己有哪些不足点
- 做这两个项目时的心路历程,有哪些思考,在这个过程中有遇到哪些困难,是怎么克服的
- 说一下网络,TCP 的交互原理是怎么样的
- TCP 和 UDP 的区别
🙌面试感想: 27. 之前秋招的面经,都是常见八股,分享一波 28. 拿到实习offer后实习了大半年,前阵子离职了[喝可乐][喝可乐][喝可乐]
《参考解析》
-
计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。
-
MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。
-
Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。
-
Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。