阿里-大淘宝技术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 分钟
方式 电话面试

八股含量很低,把我简历上所有项目都问了一遍。

问题很多,以下只写了还记得的。

开场非技术环节

  1. 你在做素质测评中有没有什么印象比较深的题目可以聊聊?

    我:?

  2. 讲一个你用所学内容解决生活问题的经历?

  3. 讲一个你领导团队解决问题的经历?你如何调动成员的积极性?

  4. 讲一个你在技术学习中啃硬骨头的经历?

    然后我讲了我的 MIT 6.824 Raft 项目,直接进入 Raft 问答环节:

    1. Raft 相比其他共识协议有什么区别?
    2. 如果一个 leader 崩溃了会贼样?
    3. 选举中如何判断一个 candidate 有没有资格当 leader?
    4. 怎么避免频繁选举失败?
    5. 会同时出现两个 leader 吗?

项目拷打环节

  1. 项目:Java 实现的 HTTP 服务端 / 客户端
    1. 你做了什么来保证服务端的稳健性?

    还有好多问题,忘了

    1. 有用线程池吗?
    2. HTTP 和 HTTPS 有什么区别?HTTPS 怎么实现的?
    3. 经典题目之描述向 www.baidu.com 发送 HTTP 请求的全过程
  2. 项目:蒋炎岩 OS Lab
    1. 包含哪些模块?
    2. 开发的顺序是怎样的?
    3. 讲讲内核多线程模块的线程调度是怎么实现的?如何判断哪些线程能抢占?如何处理优先级?
    4. 你的并发控制 primitive 是怎么实现的?
  3. 项目:WeCrush (校内实习微服务项目)
    1. 讲讲这个产品的用户画像?解决的痛点?

    还有很多细节问题,忘了

    1. 你们用了哪些 Java 中间件?
    2. 讲讲部署、测试的流程?
    3. 用过 Docker 吗?你都用 Docker 做什么?
    4. 有写过 Jenkins pipeline 吗?
    5. 讲讲你们 Java 代码的分层设计?

场景题

  1. 设计一个秒杀系统,满足:“高并发”、“低延时”、“交易数据一致性”

    阿里云开发者文档里就有答案

结尾

  1. 你觉得自己的优点和缺点都有什么?

二面


时间 2023年3月24日,17:30 - 18:30
时长 60 分钟
方式 阿里会议

很友善的一个面试官,问了超多问题,好多都忘了。

开场

  1. 自我介绍 + 讲个学校经历
  2. 成绩怎么样?
  3. 这个人民奖学金是什么级别?
  4. 这个 EL (校内比赛)是什么比赛?有参加过别的吗?

技术问题

计算机网络

  1. TCP 和 IP 是网络模型哪一层的?
  2. TCP/IP 加起来是为了解决什么问题?
  3. TCP 为什么是可靠传输的?(我一直讲成稳定传输了,草)
  4. 网络拥堵时怎么解决(一开始还以为他问的 Packeting Switching 里面那些排队问题,然后他又问了滑动窗口)
  5. TCP 建立连接为什么是三次不是四次?
  6. HTTPS 和 HTTP 有什么区别?
  7. 你刚提到的是非对称加密,还有一种对称加密,他们都用于什么场景?

Java + OS

  1. 如果你要读取一系列数字,然后只保留独特的,你要用什么集合?
  2. HashSet 为什么能做到?
    1. HashSet 和 HashMap 有关系吗?
  3. 那我们要保证 HashMap 的线程安全有几种做法?
    1. HashMap 为什么会有线程安全问题?

    2. 操作系统中的什么机制让 HashMap 出现线程安全问题?

      我答了 Scheduling 和 atomic write 的问题,但他好像想问的是 CPU cache?

    3. 一次对内存的访问会经过那些步骤?

    4. 那 ConcurrentHashMap 为什么线程安全?

      1. CAS 是怎么实现的?
      2. 为什么 CAS 比上锁快?
  4. 如果要修改一个 Java 对象的 private 变量,有什么办法?
  5. 你了解 Java 的 volatile 关键字吗?
  6. 知道快排吗?
    1. 快排的时间复杂度?
    2. 快排稳定吗?为什么不稳定?
  7. 了解红黑树吗?
    1. 红黑树获取一个元素的时间复杂度?
    2. 红黑树和 B+ Tree 有什么区别?
      1. (按我说的)B+ Tree 在数据库中是用于什么?

      2. B+ Tree 索引用于解决什么问题?

      3. 你还了解哪些索引构建的方法?

      4. 你觉得搜索引擎用什么索引?

        Inverted Index

  8. 一个线程创建多个子线程,然后等待他们返回,有什么实现方法?

项目

聊了 WeCrush 的项目背景、公司性质、还有很多业务相关的。

个人问题捏

  1. 你怎么看待最近很火的 AIGC
    1. 你有学习过机器学习相关的吗?
  2. 你有想过考研吗?为什么没想考研?
  3. 你从什么时候开始接触编程的?
    1. (我说小学)什么契机?
  4. 讲一个你学习编程中印象深刻的经历?
  5. 你有写个人博客的习惯吗?
  6. 你平常有什么学习方式?
    1. 我说上课、看书/看文档、实践,问我最近在看的书有什么。

三面 - 总监面


时间 2023年3月28日,17:00 - 17:30
时长 30 分钟
方式 阿里会议

前一天阿里联络人跟我说,我二面过了,进 HR 面了。然后当天晚上又找我说他搞错了,二面+HR是集团流程,他们部门是三面+HR,28号是整个部门的老板面试。

  1. 上来第一个问题:为什么不读研

  2. 讲讲 WeCrush

    1. 项目背景
    2. 和人人网那些交友平台的区别在哪?
    3. 项目难点
    4. 有用 Redis 吗?用来做什么?
      1. 讲讲缓存的实现?

      2. 除了 Redis 还有什么缓存技术了解吗?

        只知道 Memcache

      3. 了解 Redis 的实现吗?讲讲知道的

        讲了经典的 Event-Driven / Reactor Pattern

    5. 讲讲 Docker 和 Spring Cloud
  3. 你个人未来的职业规划是怎样的?

  4. 你怎么看待最近火热的 AIGC?

    1. 你为什么没选择 AI 专业,而是这种工程类专业?
  5. 打开了我的 GitHub,让我讲解一下主页上的东西

    果然有今天

  6. 你是哪里人?

    1. 你是考到南京大学还是保送的?
  7. 你还有投别的公司吗,(因为我是深圳人)比如深圳的腾讯?

    讲了腾讯、拼多多(忘了百度了,不好意思百度)

    1. 如果我们三家都给你发了 offer 你选谁?

      当然是国服第一 Java 阿里巴巴啦

    2. 目前其他两家有给你发 offer 吗?

  8. 有没有考虑过在深圳的国际贸易事业部?为什么选择我们而不是他们?

  9. 那为什么没选阿里云那种基础架构,而是选了我们部门这种业务开发呢?

  10. 那你现在在上课有时间来实习吗?什么时候来?来多久?

没给反问时间,就说会联系招聘助理尽快推进 HR 面。

#面经##Java##软件开发2023笔面经##阿里##后端#
全部评论
本科科班C9佬水平还是高啊,顺便问一句本科做了这么多东西,为什么不保研啊
13 回复 分享
发布于 2023-04-10 15:44 北京
大佬厉害了,能给一下阿里云开发者文档的链接嘛,谢谢哥
4 回复 分享
发布于 2023-04-11 16:46 广东
好强
2 回复 分享
发布于 2023-04-10 14:28 上海
太猛了😂😂😂
2 回复 分享
发布于 2023-04-11 19:31 天津
你**就是神仙
2 回复 分享
发布于 2023-04-13 02:02 广东
大佬
1 回复 分享
发布于 2023-04-10 19:30 浙江
阿里数字供应链部门刚开始春招,欢迎同学踊跃报表。查看个人首页帖子 查看部门介绍和扫码线上投递简历。 https://www.nowcoder.com/discuss/472422701500485632?
1 回复 分享
发布于 2023-04-12 11:25 浙江
真爽
1 回复 分享
发布于 2023-04-12 14:10 浙江
没手撕吗?
1 回复 分享
发布于 2023-04-12 20:49 福建
你在哪个部门呀 我也淘宝oc了
1 回复 分享
发布于 2023-04-12 22:09 四川
大佬太厉害了
点赞 回复 分享
发布于 2023-04-10 10:53 江苏
项目太牛了
点赞 回复 分享
发布于 2023-04-10 11:30 江苏
点赞 回复 分享
发布于 2023-04-10 15:09 上海
大佬 请问是哪个部门的
点赞 回复 分享
发布于 2023-04-10 15:11 广东
笔试都是什么题啊,楼主能大概讲下不
点赞 回复 分享
发布于 2023-04-10 15:29 上海
借楼打个广告,行业与商家技术这还有hc ,欢迎联系(java)
点赞 回复 分享
发布于 2023-04-10 19:31 浙江
面试完了还有笔试啊
点赞 回复 分享
发布于 2023-04-10 21:33 浙江
github 的readme不错,偷了哈哈
点赞 回复 分享
发布于 2023-04-11 00:25 北京
佬,拼多多三面的时候都问了什么呀
点赞 回复 分享
发布于 2023-04-11 14:50 山东
同南大,可以问一些选课经历方面的问题嘛
点赞 回复 分享
发布于 2023-04-11 15:41 江苏

相关推荐

02-27 21:19
已编辑
华南理工大学 Python
一面:计算机网络:三次四次握手三次建立tcp连接客户端-》服务端 发送建立连接请求syn 其中包含客户端的初始序列号《- 回复请求 可以连接 syn-ack-》发出连接信号ack  四次挥手断开tcp连接客户端-》服务 发送断开连接请求fin(finish)《-可以断开请求ack《-断开ack-》断开ack操作系统:进程与线程,线程通信,互斥锁,乐观悲观锁进程是资源分配和调度的最小单位,有独立的内存和资源  线程是执行的最小单位  进程由一条甚至多条的线程组成 ,进程的内存和资源被所有线程共享 线程通信 1共享内存(需要同步禁止(互斥锁)来避免竞争关系)2消息传递(使用队列、管道等数据结构实现)3信号量4条件变量 互斥锁保证共享资源的同步机制,确保同一时间只有一个线程可以访问共享内存读写锁对共享资源的同步机制读(共享锁)写(独占)适合读多写少 乐观锁指 假设最好的情况,即每次访问共享资源时不会发生冲突,因此在访问的时候不上锁,通常用在读操作较多的场景,可以减少锁开销,提高并发性能悲观锁指  假设最坏的情况,即每次访问共享资源时候回发生冲突 每次访问资源之前先枷锁 包括互斥锁 读写锁,适用于写操作较多的情况linux命令:用过的linux命令,查看进程psps aux:显示所有用户的进程,包括详细信息(如CPU和内存使用情况)。ps -ef:显示所有进程的完整信息。ps -e:显示所有进程。ps -u username:显示指定用户的进程。数据库sql写一个,模糊查询SELECT * FROM 表名WHERE 列名 LIKE '%关键字%';%关键字%:查询包含“关键字”的所有记录。关键字%:查询以“关键字”开头的记录。%关键字:查询以“关键字”结尾的记录。关键字_:查询以“关键字”开头,后跟一个字符的记录。关键字%_:查询以“关键字”开头,后跟一个或多个字符的记录冒泡排序实现原理,复杂度,快排复杂度重复地遍历待排序的列表,依次比较相邻的两个元素,如果它们的顺序错误就交换它们。这个过程会重复进行,直到没有需要交换的元素为止,此时列表已经排序完成。快排递归 时间logn 空间nlogn最有挑战的事情从0到1搭建Python+Pytest接口自动化测试框架环境的搭建接口测试pytest学习jenkins环境搭建和配置测试报告生成性能测试 (压力测试)Jmeter性能场景分析于创建压测脚本编写及调试脚本执行指标监控(业务指标、硬件指标、软件指标 grafana定位瓶颈性能调优输出测试报告业务指标:并发用户数 TPS 成功率95 响应时间硬件指标 :CPU资源利用率、内存利用率、磁盘I/O、网络I/O软件指标:线程数、JSBC连接池、慢SQLtps上不去,分析下原因?(素材库录用、上传首先是压力机压力不够,比如用我们笔记本压不到那么高TPS, 所以我们公司有自己测平台,分布式集群压测。网络带宽,单位时间内网络传输数据量过大,超过带宽处理能力慢查询(数据库连接池配置过小,最大连接数不够 50 redis 表结构 查询优化Cpu,内存,磁盘硬件资源达到瓶颈中间件redis也有可能存在瓶颈比如缓存穿透,缓存过期等等存在大量线程阻塞,线程死锁等中间件消息队列拥堵响应时间过长 95大服务器硬件资源cpu,内存,磁盘达到瓶颈,可以使用监控命令排查网络问题导致,比如丢包,带宽不够等等线程出现死锁,阻塞等问题可以用jstack查看中间件比如mq消息队列拥堵排队等数据库层面sqI不够优化,没有索引,联合索引失效等,数据库连接数不够最自豪的事情代码:求1-n中,3和5的倍数,并相加def sum_multiples_of_3_and_5(n):    total_sum = 0    for i in range(1, n + 1):        if i % 3 == 0 or i % 5 == 0:            total_sum += i    return total_sum能不能实习课程安排 二面:自我介绍浏览器输入baidu.com的详细过程,说完然后继续问能不能详细讲1 dns将域名-》IP地址 计算机通过IP地址定位和连接其他服务器2 tcp握手3-》 通过tcp连接向百度服务器发出https( SSL/TLS )请求 请求的 URL 通常包括:请求方法(如 GET)、请求头(包括浏览器信息、语言、Cookie 等)以及目标资源的路径(如 / 或其他页面)。3百度使用https协议和客户端进行安全连接 ,处理请求返回html、css、js文件、图片等4浏览器解析收到的信息并渲染网页为什么不做开发,而选择测开1项目经历 爱好2性格3职业规划怎么判断bug是前端还是后端,1ui不符合(布局、交互、渲染) 前端2查看控制台,浏览器发起的请求 无返回或者返回信息错误(500、502) 后端3查看接口 返回数据正确 前端 错误 后端如果是后端,怎么去定位1 查看后端日志,包含错误信息 请求参数 响应 -》定位bug查看应用日志:大多数后端框架(如 Spring Boot、Express、Django 等)都会记录错误信息到日志中,查看日志能帮助你了解错误发生的上下文。查看数据库日志:如果问题涉及数据库查询或操作,可以查看数据库的查询日志。2借口测试检查响应状态码:例如,500 错误表示服务器内部错误,404 错误表示找不到资源。检查响应数据:确保返回的数据结构、字段值等符合前端的需求。3检查数据库是网络层哪一层应用 传输 数据格式化、加密解密、压缩网络 路由数据包 确保从源到目的地的传输 寻址和路由选择物理层 物理介质传输比特流写代码:最长公共前缀和,如何优化时间和空间口述思路:两个链表如何找交点,环形链表怎么处理智力题:三个箱子,苹果,橘子和混合,都贴错,只能打开一次,然后判断是否准确混合 三面:30min1.自我介绍2.项目提问3.如何理解测试开发    1 手动+自动化测试框架的开发      2 核心职责 1自动化测试脚本的编写 ,这些脚本通常使用一些测试框架(如 Selenium、Appium、TestNG、JUnit 等)来执行功能测试、回归测试、性能测试等。2测试框架的开发,已有的市面上测试框架不满足细化需求 、开发测试框架满足定制化需求3测试环境的搭建 选择合适的操作系统、浏览器、数据库等,确保测试在真实或接近真实的生产环境中运行。包括 CI/CD(持续集成/持续交付) 环境的配置,如 Jenkins、GitLab CI 等。    3与开发团队的协作4.为什么投百度,是否投其他公司    有 贵公司能力、红利 能力契合 职业发展规划
查看22道真题和解析
点赞 评论 收藏
分享
虾皮(面试专场,一天速通)⌚️投递时间:2.20👋笔试:2.20(单选、多选、原生js写todo-list)🤏一面:2.22✌️二面:2.22😉oc:2.21百度(两周)⌚️投递时间:2.14👋一面:2.19🤏二面:2.24✌️三面:2.27😉oc:2.27(当晚hr电话口头offer)字节(一周)⌚️投递时间:2.17👋一面:2.24🤏二面:2.27✌️三面:2.28等待hr面......面经不完整记录(仅记录记得住 & 非实习 & 非项目相关的问题):一、虾皮:一面:* 手撕:lodash_get方法(考到数组循环几种方式,各种错误边界判断考虑)* 小程序心跳机制(实现思路) -> webSocket -> 为什么要用webSocket,而且用户等待时间过久,不再发送心跳,webSocket断掉了,用户不就拿不到新的数据了吗 -> 使用SSE服务端推送,解决了用户手动刷新消息列表的问题、又解决了用户停留时间过长,webSocket断掉的问题* 有看什么书吗 -> 没有,为什么?太枯燥,平时看博客、写博客 -> 看下博客 -> 最近一次什么时候写的 -> 为什么现在不写(阅读量低、不知道写什么)-> 博客内容都是自己写的吗 -> 一些有参考,一些是自己开发过程中遇到的就是自己写的 -> 要坚持写博客(写博客被面试官加分)* 和面试官聊得不错,有说有笑二面:1. 实习过程中技术上的提升2. js和java的区别(解释性语言和编译性语言的区别)继承和多态3. 最近学什么东西4. 怎么准备面试5. 有没有准备软件工程、计算机组成原理方面的面试 -> 无6. 进程和线程7. 状态码8. 敲下一个路径,浏览器的解析过程9. 写项目的一些收获(查看提交记录),对着仓库讲10. 够不够拼、够不够努力,主要是react,你怎么考虑11. 上一段实习的工作强度、工作时间反问:1. 团队氛围 -> 不PUA2. 最近是不是在急招,流程推这么快ps:一面面试官不错,对着我的实习业务就是一阵拷打(拷打到回答不上来)二面上压力(全程黑脸)不分暑期跟日常,表现好转正(经典话术)============================================================二、百度:一面* 算法:有效括号匹配、全排列(重复元素没去重,面试官说算我过)-> 都是leetcode原题* 八股相关二面:* 算法:找出第一个不重复的字符的位置,如'abcabcde',第一个不重复的字符'd',返回它的位置* git相关,场景:主分支代码推上去后,跑去dev开发;此时主分支需要hotfix,怎么解决 -> git stash -> git commit 和git stash都是本地存,有什么区别,为什么不用commit而是stash -> commit和stash的区别(不熟悉)* CDN相关:有CDN和没CDN的流量路径是怎么样的,有什么区别 -> 有了CDN一定比没有CDN更快吗(不一定,如果没缓存,还是得去根域名服务器查找) -> 那假设现在有缓存呢?一定更快吗资源部署之后,访问的路径是怎么样的* 现在有个接口,项目多个地方使用,怎么避免不必要的多次调用 -> 全局store维护一个变量表示是否已经请求过,false则请求 -> 那判断的时机是什么?生命钩子判断 -> 但现在有n个页面就要有n份代码 -> 路由守卫来执行* 开放题:一段复杂的代码(体积较大,假设2M),现在有两种方案:1. 通过iframe引入;2. 通过npm独立发包后引入,你会用哪种方案,为什么三面:* 聊学习路线、聊学习规划,无手撕* 问有没有学四大件 -> 学校主java,强行打断施法* 聊业务,让推进度 -> 结束没多久hr打电话给口头ps:百度三轮面试官面试感受无敌,主Vue,而且会用Node做中间层(个人很感兴趣其实,且Vue相对上手快些),组内不分暑期跟日常===========================================================三、字节一面:* 写一个mergePromise、异常处理* Vue的双向绑定原理、项目中挑一个最深的点讲一讲* http常见状态码、三次握手过程* 大文件切片上传、断点续传、秒传实现思路* 了解Node吗?用过Node吗?(说曾经用过Express写增删改查)熟悉数据库吗(No)手写:*. mergePromise*. 合并数组(LeetCode原题)*. 获取链表倒数第k个节点*. 用Vue写一个todo-list 二面(无自我介绍,直接开始表演):* vue封装一个menu组件(一二级菜单 -> 如果菜单层级嵌套不止一层,怎么处理)* 给一个url数组,限制最大请求数(理发师问题)-> 说写得有点点小瑕疵,后面看了一下,应该返回每个的执行结果,而不是只返回其中某个#牛客AI配图神器#* 性能优化 -> 资源压缩、懒加载、小文件合并大文件减少请求次数、组件缓存、base64、雪碧图、防抖节流....* 讲讲vue的diff算法 -> 双端对比,组件乱序部分使用最长递增子序列 -> 根据key维护哈希表,实现时间复杂度 O(n ^ 2) -> O(n)* 反问:前端角度,后端node较多,react较多,希望找的实习生能够转正让推面试流程三面:* 实习经历拷打,更多的是问为什么要这个(业务层面的思考)* offsetCanvas对比canvas好在哪* redo、undo撤消重做 -> 讲到命令模式* 一张雪碧图,里面的图片可能是不规则的(矩形、正方形、圆形、三角形)怎么去确认每张图形的位置* 说前两轮算法、手撕、项目都问得差不多,这轮无手撕,无项目拷打(暗喜)反问:* 部门介绍* offer情况,让帮忙推进度* 不足改进的地方:业务多问为什么,而不是一味的技术实现等待hr面中....=================================================================写在最后:1. 没有技术可言,全是运气这一点真的在这次求职过程中深深感受到了。就拿虾皮的面试专场来说,我是第一场早上开始的(应该是算早的那一批),每轮过后面试官就立马推入下一轮,我看牛客上一些牛友和我应聘同一个岗位,可能就是因为时间点的问题,流程比我稍稍慢一点2. 面试不是完美主义,有地方不足就靠其他地方拉平不足。同样是虾皮的面试,面试官对着我的实习、项目疯狂输出,说实话后面被问得哑口无言,但这时候脑子别乱......稳住就赢了3. 字节实在出乎意料。字节本不在我的计划之内,boss找到我之后犹豫了很久最终决定冲一把。目标其实是不要脏了面评,结果干到三面。字节三轮面试下来感觉还不错,没有传说中那么push,第一轮甚至还是女面试官4. 字节的手撕和算法是最多的,手撕部分似乎很喜欢考异步相关处理5. 字节主React,组内还会有Node,个人主Vue。希望能抗住压力。等待hr面中...不奢望转正,跟上进度、别职场霸凌我就行6. 其实这波求职中,美团才是我的大厂处女面,手撕获取路径参数的时候把 isNaN() 给忘了,没撕好至今快过去两周了,应该是挂了......听说美团培养制度无敌,可惜。不过也不是没收获,在反问环节问面试官我的不足时,讲到:“讲一些复杂的思路时可以不用事无巨细,感觉像是在背,而不是在聊”老实了,后面的面试中光速调整策略。所以说,没事多面,积攒经验7. 在我看来,大厂面试官似乎跟喜欢候选人对整体局面(包括项目整体、功能整体、业务整体)的掌握,再由讲到的一些点不断切入8. 还投了某东,综合测评做得我跟人格分裂一样三个褒义词非要我挑一个我最不符合的9. 腾子投了两周后通知面试,至今未开始,应该要推掉了,太鸡儿累了最最后,许愿字节hr面别挂,不然我真成🤡了#我的OC时间线##牛客创作赏金赛##前端##暑期##26暑期实习#
点赞 评论 收藏
分享
评论
57
236
分享

创作者周榜

更多
牛客网
牛客企业服务