阿里校招 Java 后端三四面面经(Part 2)
阿里校招 Java 后端 1-5 面 + HR 面面经(Part 2)
三面 9.9 (约 36 min,电话面)
- 自我介绍
- 大学期间有没有做过一些技术相关的有意思的/有成就感的/参与过的可以分享一下的东西(聊项目)
- 这一面挖项目比较多,大概是以下几个问题:
- 项目的需求来源是什么
- 技术栈选型的考虑因素是什么,当时是如何找到你所选定的那个关键组件?
- 关键组件的底层原理
- 做了哪些工作,这个项目的主要难点是什么?
- 聊 kafka,有没有让你印象深刻的设计或者代码实现(说书时间)
Producer
双线程设计,消息压缩 - broker 的持久化和高可用设计(多副本)
- 插问:分布式主从分布的脑裂效应,怎么解决?(master-slave 模式怎么解决我还真不知道……,只知道Kafka 用 leader-epoch 字段)
- Kafka 高吞吐量的基础(顺序写盘+零拷贝)
- Java 怎么实现零拷贝(我只知道 io 包里的
transferTo
)
- Kafka 的消息是否是有序的?
- Kafka 消息到达的保证?(exactly-once, at-least-once,基于事务)
- TCP 是可靠的吗?TCP 下层协议是什么? IP 是可靠的吗?为什么 TCP 要在不可靠的底层协议上提供可靠服务,TCP 可靠传输怎么实现的?
- TCP 和 UDP 的适用场景?
- 有没有实际场景会要求基于 UDP 实现可靠传输?
反问环节
- 知识储备有哪些地方需要补全的?
- 后面还有几轮面试?
四面 9.11 (约 48 min,电话面)
- 自我介绍
- 稍微问了问考研成绩
- 聊项目
- 同构 / 异构数据库之间的迁移怎么实现?除了 dataX 还有什么方法?
- 数据库性能的优化有哪些手段(扯了一些 Explain,索引,SQL 语句最佳实践、分库分表之类的……)
- 对热销产品的并发减库存,如何设计?(真不知道,乱猜用 Redis 加一层缓存)
- 我提了用 Redis 事务,面试官追问如果不使用事务要怎么做(CAS?)
- 又回到项目,问了下人员配置,以及项目中一个小模块的功能和大致实现
- 了解哪些大数据分析相关的产品?
- Hadoop 和 Map Reduce 了解过吗?(不了解……)
- 除了简历上的项目还做过其他实践性的项目吗?(只有 DEMO)
- 为什么研究生选择转行?
- 为了转行做了哪些努力?
- 转行过程中遇到的比较有挑战性的事情是什么?又是怎么克服的?
- 平时经常会关注的技术媒体 / 大牛是谁?会看技术性文章吗?
- 用 Java 多久了,写了多少 Java 代码?
- OOM 排查?
- 做过 Java 代码的部署吗?
- 你学过的数据结构在 Java API 中有哪些应用(说书时间)
- Java 的线程安全的实现方法
- 还在面试哪些公司?有拿到哪些 offer?个人倾向是怎样的?
反问环节
#面经##校招##阿里巴巴##Java工程师#