阿里-大淘宝技术Java面经(已意向)
时间线:
- 2023.03.08 投递
- 2023.03.20 一面,一面后提醒记得做笔试
- 2023.03.22 笔试,笔试次日约二面
- 2023.03.24 二面
- 2023.03.28 三面
- 2023.03.30 HR 面
- 2023.03.31 意向书邮件
一面
时间 | 2023年3月20日,10:30 - 11:20 |
---|---|
时长 | 50 分钟 |
方式 | 电话面试 |
八股含量很低,把我简历上所有项目都问了一遍。
问题很多,以下只写了还记得的。
开场非技术环节
-
你在做素质测评中有没有什么印象比较深的题目可以聊聊?
我:?
-
讲一个你用所学内容解决生活问题的经历?
-
讲一个你领导团队解决问题的经历?你如何调动成员的积极性?
-
讲一个你在技术学习中啃硬骨头的经历?
然后我讲了我的 MIT 6.824 Raft 项目,直接进入 Raft 问答环节:
- Raft 相比其他共识协议有什么区别?
- 如果一个 leader 崩溃了会贼样?
- 选举中如何判断一个 candidate 有没有资格当 leader?
- 怎么避免频繁选举失败?
- 会同时出现两个 leader 吗?
项目拷打环节
- 项目:Java 实现的 HTTP 服务端 / 客户端
-
你做了什么来保证服务端的稳健性?
还有好多问题,忘了
- 有用线程池吗?
- HTTP 和 HTTPS 有什么区别?HTTPS 怎么实现的?
- 经典题目之描述向
www.baidu.com
发送 HTTP 请求的全过程
-
- 项目:蒋炎岩 OS Lab
- 包含哪些模块?
- 开发的顺序是怎样的?
- 讲讲内核多线程模块的线程调度是怎么实现的?如何判断哪些线程能抢占?如何处理优先级?
- 你的并发控制 primitive 是怎么实现的?
- 项目:WeCrush (校内实习微服务项目)
-
讲讲这个产品的用户画像?解决的痛点?
还有很多细节问题,忘了
- 你们用了哪些 Java 中间件?
- 讲讲部署、测试的流程?
- 用过 Docker 吗?你都用 Docker 做什么?
- 有写过 Jenkins pipeline 吗?
- 讲讲你们 Java 代码的分层设计?
-
场景题
-
设计一个秒杀系统,满足:“高并发”、“低延时”、“交易数据一致性”
阿里云开发者文档里就有答案
结尾
- 你觉得自己的优点和缺点都有什么?
二面
时间 | 2023年3月24日,17:30 - 18:30 |
---|---|
时长 | 60 分钟 |
方式 | 阿里会议 |
很友善的一个面试官,问了超多问题,好多都忘了。
开场
- 自我介绍 + 讲个学校经历
- 成绩怎么样?
- 这个人民奖学金是什么级别?
- 这个 EL (校内比赛)是什么比赛?有参加过别的吗?
技术问题
计算机网络
- TCP 和 IP 是网络模型哪一层的?
- TCP/IP 加起来是为了解决什么问题?
- TCP 为什么是可靠传输的?(我一直讲成稳定传输了,草)
- 网络拥堵时怎么解决(一开始还以为他问的 Packeting Switching 里面那些排队问题,然后他又问了滑动窗口)
- TCP 建立连接为什么是三次不是四次?
- HTTPS 和 HTTP 有什么区别?
- 你刚提到的是非对称加密,还有一种对称加密,他们都用于什么场景?
Java + OS
- 如果你要读取一系列数字,然后只保留独特的,你要用什么集合?
- HashSet 为什么能做到?
- HashSet 和 HashMap 有关系吗?
- 那我们要保证 HashMap 的线程安全有几种做法?
-
HashMap 为什么会有线程安全问题?
-
操作系统中的什么机制让 HashMap 出现线程安全问题?
我答了 Scheduling 和 atomic write 的问题,但他好像想问的是 CPU cache?
-
一次对内存的访问会经过那些步骤?
-
那 ConcurrentHashMap 为什么线程安全?
- CAS 是怎么实现的?
- 为什么 CAS 比上锁快?
-
- 如果要修改一个 Java 对象的 private 变量,有什么办法?
- 你了解 Java 的
volatile
关键字吗? - 知道快排吗?
- 快排的时间复杂度?
- 快排稳定吗?为什么不稳定?
- 了解红黑树吗?
- 红黑树获取一个元素的时间复杂度?
- 红黑树和 B+ Tree 有什么区别?
-
(按我说的)B+ Tree 在数据库中是用于什么?
-
B+ Tree 索引用于解决什么问题?
-
你还了解哪些索引构建的方法?
-
你觉得搜索引擎用什么索引?
Inverted Index
-
- 一个线程创建多个子线程,然后等待他们返回,有什么实现方法?
项目
聊了 WeCrush 的项目背景、公司性质、还有很多业务相关的。
个人问题捏
- 你怎么看待最近很火的 AIGC
- 你有学习过机器学习相关的吗?
- 你有想过考研吗?为什么没想考研?
- 你从什么时候开始接触编程的?
- (我说小学)什么契机?
- 讲一个你学习编程中印象深刻的经历?
- 你有写个人博客的习惯吗?
- 你平常有什么学习方式?
- 我说上课、看书/看文档、实践,问我最近在看的书有什么。
三面 - 总监面
时间 | 2023年3月28日,17:00 - 17:30 |
---|---|
时长 | 30 分钟 |
方式 | 阿里会议 |
前一天阿里联络人跟我说,我二面过了,进 HR 面了。然后当天晚上又找我说他搞错了,二面+HR是集团流程,他们部门是三面+HR,28号是整个部门的老板面试。
-
上来第一个问题:为什么不读研
-
讲讲 WeCrush
- 项目背景
- 和人人网那些交友平台的区别在哪?
- 项目难点
- 有用 Redis 吗?用来做什么?
-
讲讲缓存的实现?
-
除了 Redis 还有什么缓存技术了解吗?
只知道 Memcache
-
了解 Redis 的实现吗?讲讲知道的
讲了经典的 Event-Driven / Reactor Pattern
-
- 讲讲 Docker 和 Spring Cloud
-
你个人未来的职业规划是怎样的?
-
你怎么看待最近火热的 AIGC?
- 你为什么没选择 AI 专业,而是这种工程类专业?
-
打开了我的 GitHub,让我讲解一下主页上的东西
果然有今天
-
你是哪里人?
- 你是考到南京大学还是保送的?
-
你还有投别的公司吗,(因为我是深圳人)比如深圳的腾讯?
讲了腾讯、拼多多(忘了百度了,不好意思百度)
-
如果我们三家都给你发了 offer 你选谁?
当然是国服第一 Java 阿里巴巴啦
-
目前其他两家有给你发 offer 吗?
-
-
有没有考虑过在深圳的国际贸易事业部?为什么选择我们而不是他们?
-
那为什么没选阿里云那种基础架构,而是选了我们部门这种业务开发呢?
-
那你现在在上课有时间来实习吗?什么时候来?来多久?
没给反问时间,就说会联系招聘助理尽快推进 HR 面。
#面经##Java##软件开发2023笔面经##阿里##后端#