面试轮次一览
轮次 | 类型 | 时长 |
---|---|---|
Round 1 | 技术(数据结构与算法) | 60 分钟 |
Round 2 | 低级设计(Java) | 60 分钟 |
Round 3 | Hiring Manager | 60 分钟 |
Round 1 – 技术(DSA)
- 自我介绍:双方快速寒暄。
- HashMap 内部实现:讲解底层结构并现场编码实现。
- LRU 浏览器标签系统:
- 场景:浏览器最多保留 10 个标签页;当打开新标签时,关闭最近最少使用(LRU)的标签。
- 要求:阐述数据结构选择、核心逻辑与时间复杂度。
- 排序算法复杂度:对常见排序算法(如快速排序、归并排序、堆排序等)的时间与空间复杂度做对比。
Round 2 – 低级设计(Java)
- 项目背景:简述过往项目经验。
- 设计 BookMyShow:
- 定义核心类与数据库 Schema。
- 说明如何处理并发(座位锁定、事务等)。
- 设计模式讨论:提到使用的模式、选择原因及简要说明其作用。
- 核心 Java 问题:
- 抽象类 vs 接口:区别与适用场景。
- 抽象类构造函数为何不能实例化? 解释设计初衷与用法。
Round 3 – Hiring Manager
- 项目深入:再次探讨项目细节与个人贡献。
- 行为面试问题:
- 你最自豪的成就是什么?
- 从非技术经历中学到了什么?
- 你如何解决冲突或问题?
- 为什么考虑离开现在的公司?
- 其他讨论主题:
- 部署流程与环境
- SQL 与 NoSQL 的取舍
- 当前团队的 SDLC 与开发方法论
P.S. 整体面试节奏紧凑,注重思路表达与系统设计深度。准备时可侧重底层实现、设计权衡与项目复盘。