阿里Java实习十轮面试面经

写在前面

本人双非本科大三,专业是微电子科学与工程,学过一点点 Java,项目是纯 CRUD 项目,未接触过 RPC 项目,下面是阿里四个部门的面经,让大佬们见笑了

2.24 部门 A 预面 64 min (过)

  1. 自我介绍

  2. 学校的学习和实习的时间是怎么分配的?

  3. 实习的项目做了什么?遇到的难点?

  4. 在实验室做的项目遇到的难点?

  5. JPA 和 MyBatis 的区别?讲一下对象字段映射的细节

  6. MySQL 各种索引的一些差异

  7. 什么是聚簇索引?什么是非聚簇索引?

  8. Innodb 是怎么保证崩溃恢复能力的?(两阶段日志提交)

  9. Innodb的优缺点?(围绕索引数展开讲)

  10. 索引覆盖?回表?唯一索引?非唯一索引?最左原则?

  11. explain 里面有哪些字段?

  12. 一个 SQL 查询很慢,从哪些地方进行优化?

  13. 自增 ID 和 UUID 的区别?(叶分裂)

  14. 自增 ID 申请完了会发生什么事情?

  15. 分库解决了什么问题?分表解决了什么问题?

  16. 你觉得学 Java 需要具备哪些基本条件?哪些地方特别重要?

  17. 七层网络模型

  18. 为什么有了七层还有五层的概念?

  19. JVM 内存模型(概述)

  20. 讲讲双亲委派,为什么?

  21. 你觉得双亲委派这个名字有没有什么问题?你讲讲自己的理解

  22. 打破双亲委派的例子,举个例子?怎么打破?

  23. 你现在用什么 GC 收集器?

  24. Eden 区的对象回收策略?

  25. CMS 的 STW 情况?

  26. CMS 什么情况会触发 Full GC?

  27. 新对象一定会在新生代 new 出来么?

  28. Java8 有什么新的 GC 算法?

  29. 了解 G1 收集器么?

  30. 考研么?为什么现在的实习想离职了?

  31. Golang 和 Java 的区别?

  32. 反问:有什么需要提高的?

2.25 部门 B 一面 50 min (过)

  1. 上一次面试问了些什么问题?

  2. 啥时候过来实习?

  3. 挑一两个你实习或者项目当中遇到的难题?讲一讲怎么解决的?

  4. 项目当中的代码你有没有想过有一些地方可以优化?

  5. 哪些情况会出现 OOM?

  6. 堆中内存分配比例?

  7. 新生代 GC 工作流程?

  8. 为什么新生代年龄是 15 次进入老年代?

  9. 大对象进入老年代,这个大对象是有多大?

  10. 怎么排查 OOM?

  11. 你现在用过哪些中间件?

  12. RPC 了解么?

  13. RPC 解决了现在的哪些问题?

  14. 有没有想过把你的项目改造成 RPC?

  15. IOC 的初始化流程?

  16. AOP是怎么和 IOC 做整合的?

  17. 循环依赖怎么解决?

  18. 项目怎么分层的?

  19. JPA 和 MyBatis 做对象映射的区别?原理?

  20. 数据库热点查询的数据,怎么做性能优化?

  21. Innodb 的索引树数据结构?

  22. 最左原则?

  23. 有没有其他复杂的项目?

  24. 排查问题的手段,你目前知道哪些?

  25. 讲讲你的优势?

3.04 部门 C 一面 72 min (过)

  1. 自我介绍

  2. 介绍一下项目和实习

  3. 你对 RPC 的理解?

  4. HTTP 和 RPC 的关系?区别?

  5. RPC 的优点?

  6. 任何一个请求过来都会打到注册中心么?

  7. 关于项目和实习的一些问题

  8. HDFS 了解么?

  9. Java 的流式处理了解么?

  10. SpringMVC 处理请求的一个流程?

  11. Servlet 的监听器和拦截器?

  12. 有哪些方法可以拦截一个 HTTP 请求?

  13. 关于接受请求的参数,你有没有一套自己总结的方法?

  14. 在学校还做过哪些项目?

  15. 你觉得学 Java,最重要的是什么?

  16. 你对 IOC 的理解?

  17. AOP 的各种实现有什么差异?

  18. 为什么会有多种代理的方式?

  19. HTTPS 的秘钥交换过程?

  20. 有中间人劫持则么办?

  21. 双亲委派的理解?

  22. 为什么有双亲委派?一定要遵循双亲委派么?

  23. 怎么打破双亲委派?

  24. 有一个线程要等待其他线程执行完再执行?

  25. 有一个线程要等待其他线程都就绪再执行?

  26. 顺序打印 ABC?

  27. Innodb 索引的数据结构?为什么用 B+树?

  28. 100 瓶药一瓶毒药.懂得都懂.

  29. 海量数据取前 5.

3.04 部门 B 一面 52 min (过)

  1. 自我介绍

  2. 有没有面其他的部门?

  3. 介绍一下自己的实习项目?

  4. 关于项目的一些问题

  5. 你觉得实习做的事情还有没有什么可以优化的?

  6. 为什么 TX 用 Golang?(我怎么知道?)

  7. DNS 解析流程?

  8. 怎样解析一个域名?解析一个域名需要哪些信息?

  9. 为什么用 Nginx?

  10. 你觉得 Nginx 在你的项目中最大的作用是什么?

  11. HTTPS 的秘钥交换过程?

  12. 你觉得使用了 HTTPS 之后还会出现问题么?出现问题了怎么办?

  13. 外挂的 Tomcat 和 SpringBoot 内嵌的 Tomcat 有什么区别?

  14. Tomcat 的设计模式了解么?

  15. SpringBoot 怎么调起Tomcat?

  16. 你对 IOC 的理解?

  17. 实际开发当中你哪些地方使用了 Bean 的前置后置处理器?

  18. AOP 是怎么和 IOC 进行整合的?

  19. Spring 怎么把 Java 对象初始化成 SpringBean 的?

  20. HashMap 八股文讲讲?

  21. 哪些情况下会产生 Full GC?

  22. 方法区的大小怎么设置?

  23. 栈大小怎么设置?

  24. 你遇到过堆栈溢出的情况么?怎么解决的?

  25. MySQl 主从集群怎么搞?

  26. Binlog 有几种?区别是什么?

3.05 部门 B 二面 75 min (过)

  1. 面试官上来花了 10 分钟介绍了他们部门

  2. 关于 Github 上面的项目的问题(这个代码是大二上期写的)

  3. 项目当中的数据库设计,你是怎么做的?

  4. 项目怎么分层的?

  5. 流量打到 SpringMVC 上面之后的处理流程?

  6. 微信小程序登录的流程?

  7. JS SDK 登录和后端请求微信服务器登录的区别?

  8. 你觉得微信登录获得的 raw 信息可以被黑客劫持么?

  9. 你使用过分表么?分库分表分别解决了什么问题?

  10. 分表的时候,怎么设计主键?

  11. 自己的项目当中,用到自定义索引的情况?

  12. 最左原则?联合索引?

  13. 为什么会有最左匹配原则?(根据 B+树排序规则去回答)

  14. 为什么使用 B+树?回表?怎么减少回表?

  15. 数据库的乐观锁和悲观锁?

  16. 读锁和写锁的区别?

  17. 假设现在有一个需求,需要在一个 for 循环里面连续 100 次去更新一个行记录,这个过程中会出现阻塞的情况?怎么使用编码的方式来规避这种情况?(手动继承 AQS)

  18. 怎么关闭长事务?

  19. 为什么想来阿里?

  20. 微服务实例是怎么暂停的?了解么?

  21. 关于实习和项目的一些问题

  22. 线程池 7 个参数的含义?

  23. 线程池提交任务的流程?

  24. 对分布式的了解有多少?

3.05 部门 C 二面 50 min (过)

这轮面试忘了录音了,有些问题不记得了.

  1. 关于项目和实习的一些问题.

  2. 一个分布式部署的项目?至少需要哪些模块?

  3. 任何一个流量打过来都会打到注册中心么?

  4. 一个注册中心,至少需要具备哪些条件?

  5. 有一大批流量总是被打到一个实例上面,这个实例的兄弟实例分到的流量很少,怎么办?

  6. 有一个实例挂了怎么办?

  7. 注册中心集群的时候,其中一个注册中心挂了怎么办?

  8. 平时通过哪些渠道学习?

  9. 看过哪些博客?

  10. 你觉得美团的博客上面有哪几篇对你帮助特别大?

  11. 然后具体谈了谈这一篇博客

  12. 你看视频一般在哪儿看?看那些类型的视频?

  13. 能给我推荐一个关于技术的公众号么?

  14. 你有看过阿里的一些技术博客么?你觉得他们写的博客对你有没有帮助?

剩下的八股文问题不记得了.....

3.05 部门 A 二面 60 min (过)

这一轮面试也忘了录音了....

  1. 自我介绍

  2. 关于项目和实习的一些问题

  3. HashMap put 里面已经有100000 个数据了,往里面 put 第 100001 个数据会不会扩容?

  4. 你觉得采用链表加红黑树的组合方式之后解决了什么问题?

  5. 那么多数据结构,为什么偏偏使用红黑树?

  6. 红黑树的平衡怎么做?

  7. 链表转化成红黑树的阈值怎么算出来的?

  8. 为什么红黑树缩回链表的阈值和进化的阈值不一样?

  9. 现在用编码的方式进行代码同步,有哪些方法?

  10. 公平锁和非公平锁的实现(AQS 八股文)

  11. volatile 的特性?

  12. 一个 volatile 变量,一个线程写,多个线程读会不会出现线程不安全的问题?

  13. IOC 的初始化流程?

  14. Java 的类加载过程?

  15. 为什么会有 TIMEWAIT这个状态?

  16. 拥塞控制?流量控制?

  17. 10000 亿条淘宝订单,每条订单当中包含了一个交易流水,流水里面有商品的 ID,有购买数量,同一个商品在这个订单会出现多次,现在要统计销量最好的 10 件商品.

能记起来的就这些.....

3.06 部门 D 一面 70 min (过)

  1. 为什么不找硬件相关的实习来做软件?

  2. 能给我介绍一下微电子科学与工程这个专业是干什么的么?

  3. 你是怎么学习软件开发的这些东西?

  4. 关于实习和项目的问题

  5. 讲讲面向对象的一些特性?

  6. Java 7 大原则?

  7. 面向过程和面向对象的区别?

  8. 对象和类的关系?

  9. Java 容器八股文

  10. HashMap 八股文

  11. 进程和线程的区别?

  12. Java 创建线程的方式?

  13. 线程池参数和任务提交到执行的过程?

  14. 对于线程池参数的设定,你有没有自己的一套方案?

  15. 代码的同步怎么做?

  16. Java 的类加载过程?什么时候回触发到 Java 类的加载?什么时候回触发类的卸载?

  17. 双亲委派?打破双亲委派?

  18. 重载和重写在 JVM 层面是怎么鉴别的?

  19. JVM当中的方法内联?

  20. MySQL中的事务是怎么实现的?

  21. 隔离级别的区别?都是怎么实现的?

  22. 事务数组是什么?高水位指的是哪些?低水位指的是哪些?

  23. Innodb 索引数据结构?阿巴阿巴

  24. SQL 语句执行流程?分析器优化器执行器都是什么?

  25. 回表?索引下推?

  26. IOC 的初始化流程?

  27. 为什么会有 SpringBoot 的出现?

  28. 讲讲自动装配?

  29. 你更倾向于 MyBatis 还是 JPA?

  30. 这两个 ORM 的实现和区别?

  31. 问项目....

  32. 问实习...

  33. 你的大学生活,时间一般是怎样安排的?

  34. 你觉得你自己的大学生活充实么?

  35. 一般采用哪些方式学习?

  36. B 端业务和 C 端业务你更倾向于哪种?

3.06 部门 D 二面 110 min (过)

  1. 自我介绍

  2. 本专业的成绩怎么样?

  3. 挂过科么?为什么会挂科?能不能总结一下这一次挂科?

  4. JVM内存模型概念?

  5. 你对方法区/元空间的理解?

  6. 堆中内存的分配?

  7. 永久带会涉及到 GC 回收么?

  8. 程序运行的时候,怎么监控内存使用情况?

  9. 程序运行的时候,怎么看堆栈信息?

  10. Java 类加载的过程?

  11. 魔数是什么?

  12. 为什么叫双亲委派?你有没有觉得这个名字怪怪的?

  13. 在一个类中调用了另一个类的私有方法能不能通过编译?

  14. ClassNotFoundException出现在哪些地方?

  15. 假如说现在有一个 可执行的A.jar和 B.jar,他们都互相引用了对方,现在 B.jar 里面的某些类已经不在了,A还能启动么?

  16. ldc,iconst,getstatic,ACC_FLAG 这几个指令都是什么意思?

  17. IOC 的特性?你对 IOC 的理解?

  18. 我们自己也可以实现 IOC 和 AOP,甚至是前置后置处理器,为什么还要用 Spring 提供的?

  19. 怎样才能知道 Spring 的 IOC 容器已经完全初始化了?

  20. 事件订阅的接口名字是什么?

  21. 为什么我会问这个问题?为什么我们需要知道 Spring IOC 容器的初始化进度?

  22. Spring 的后置处理器接口名字是什么?

  23. AOP 和 IOC 的整合流程?

  24. AOP 是怎么做动态代理的?

  25. CGLIB 是怎么操作字节码的?

  26. ASM 操作字节码的原理?

  27. XML 的两种解析策略?两种有什么差异?

  28. 线程池参数?

  29. 任务提交到线程池之后会遇到哪些情况?

  30. 用银行取钱的例子给我讲讲线程池?

  31. sync 对应的字节码是什么?

  32. sync 锁静态方法和非静态方法锁的分别是什么对象?

  33. 为什么锁的对象不一样?

  34. 为什么使用 Maven?

  35. 一个 a.jar 引用了 c,版本是 1.0.0,b.jar 引用的 c 版本是 2.0.0,一个项目当中同时依赖了a 和 b,这时候依赖的 c 版本是哪一个?为什么?

  36. Maven 仲裁策略有几步?

  37. 数据库的事务特性?

  38. 隔离级别的差异?为什么会有这种差异?

  39. 讲讲可重复读和读提交隔离级别和实现机制?

  40. 什么是"当前读"?

  41. 为什么项目当中要使用缓存?

  42. 为什么 Redis 这么快?

  43. Redis的持久化机制?

  44. 在生成 RDB 的过程当中,还能继续进行写入么?

  45. 为什么 AOF 是数据先落盘再写日志?而数据库是先写日志再落盘?

  46. 哨兵的选主策略?一个哨兵是怎么知道其他哨兵的存在的?

  47. HashMap 八股文

  48. 红黑树的特点?

  49. 三次握手和四次挥手的过程?

  50. TIMEWAIT 为什么要等待 2MSL?

  51. 301 和 302 状态码的区别?

  52. 磁盘调度算法?

  53. 操作系统死锁?

  54. 进程和线程的区别?

  55. 哪一种 IPC 最快?

  56. 线程的几种状态?

  57. 进程调度策略?

  58. 三点十五分时针和分针的夹角?

3.07 部门 B 三面 35min (过)

  1. 自我介绍

  2. 问项目,问实习

  3. 你在项目当中担任的角色?

  4. 你觉得 TX 的氛围怎么样?

  5. 你一般几点走?

  6. 那边加班严重么?

  7. RPC 调用过程中,现在要在消费者这一端配置某种调用超时之后的服务,怎么才能判断是否已经超时呢?

  8. 关于超时时间的设定,怎么设置呢?

  9. 有几种超时的情况?对应不同的情况你会怎么办?

  10. 301 和 302 状态码的区别?

  11. HTTP 和 RPC 的关系?

  12. 哪里人?平时怎么学习?

  13. 你对 B 端和 C 端业务的看法?

写在最后

面试的时候尽量追求实事求是,千万不要想着打面试官的马虎眼,有些东西没做过就是没做过
这次面试面试官帮我回忆了一下我大一大二都在干些什么?
特别是面试官问我大学生活充不充实哪里,真的是感慨特别深
我的大学就是四六级都没考过,补考挂科重修全部经历了一遍,比赛也没参加过,一个奖都没有。。。
交叉面面经后面补。。。。

#实习##面经##阿里巴巴##Java工程师#
全部评论
怎么可以做到面试这么多部门,,
3 回复 分享
发布于 2021-03-08 17:13
这就是强者吗
3 回复 分享
发布于 2021-03-08 16:36
兄弟,你太牛了
3 回复 分享
发布于 2021-03-08 16:21
阿里巴巴 数据中台 java岗位有兴趣面试下吗?
2 回复 分享
发布于 2021-03-08 17:26
亿点点
2 回复 分享
发布于 2021-03-08 17:11
我丢!这么强!举报了
1 回复 分享
发布于 2022-02-24 22:15
老哥,我想就你帖子提到的某些问题歪我公众号平台做出解答,会注明来源,请问可以吗
1 回复 分享
发布于 2021-12-18 10:44
插个楼,欢迎大家投递 AliExpress 哈,团队氛围好,目前简历极少,可以进我主页帖子看详情,欢迎私聊~
1 回复 分享
发布于 2021-03-11 15:45
看了这些问题,我感觉我都没学过Java
1 回复 分享
发布于 2021-03-09 11:17
亿点点Java?那我就没学过Java。给大佬跪了
1 回复 分享
发布于 2021-03-09 09:53
太强了,为了进阿里也真是拼了
1 回复 分享
发布于 2021-03-09 00:05
松哥松哥,阿里大哥
1 回复 分享
发布于 2021-03-08 16:50
兄弟,我要把你的面经打印出来好好研读
7 回复 分享
发布于 2021-03-08 18:31
楼主我想求一份PDF,˃ʍ˂感谢!**********
点赞 回复 分享
发布于 2025-11-05 18:46 浙江
楼主太强了!求一份PDF,感谢!2839846578@qq.com
点赞 回复 分享
发布于 2022-03-01 15:51
楼主,求一份PDF,万分感谢,1483488900@qq.com
点赞 回复 分享
发布于 2022-02-24 22:20
楼主求份PDF  邮箱1074938520@qq.com  谢谢!
点赞 回复 分享
发布于 2022-02-24 16:51
真的强
点赞 回复 分享
发布于 2022-02-24 11:59
求求求pdf,大神!287550478@qq.com
点赞 回复 分享
发布于 2022-02-24 10:44
大佬,求一份pdf 315128442@qq.com
点赞 回复 分享
发布于 2022-02-24 01:39

相关推荐

2025-12-16 22:19
已编辑
南昌市第三中学 Java
个人背景:27届本科 江西普通一本院校个人经历:小厂->用友->蔚来->美团->腾讯不知不觉已经有了五段实习经历,也快在外面漂泊一年半了,在今年也完成了两年前自己想进大厂的目标,可能在别人看来确实就是一段比较传奇的过程,一步一步都在向上走,也会有很多人来问我相关学习实习的一些问题,我看到了也会尽量去回复,但现在我想给大家说的并不是千篇一律的学习路线,而是我认为更为重要的——勇气与抉择。下面我来分享一下这些年的心路历程最初学习背景:我跟很多人一样,都是刚进入大学才开始接触计算机,也刚刚拥有自己的电脑,在刚开始学习的过程没有任何人来帮助我,给予我相关的指导,完全是自己摸索出来的一条学习路线,不会有如今这样有很多完善好的速成路线,而家里人都在想让我考研,似乎本科以我的学历就业是不现实的。我也很早意识到了学历对于我的限制,所以萌生出了大一就开始实习的想法,但这个想法在当时基本上是不存在。所有人都在抨击我(这里感兴趣的话可以看我最早发的帖子),有的人说本科想进大厂痴人说梦,有的人劝我以我的学历考研才是上策,有的人说我屁都不懂就来卷,总之我很难说去看到有支持的。我大一的时候还没卷成如今这样很多大一实习,当我想找到是否有跟我一样下定决心一步一步往上走的人,我当时是没有找到的,要么是秋招的哀嚎,要么就直接是零实习进大厂(现在我知道,这里所谓的普通学历0实习进大厂的水分有很多,排除真正意义上的运气和实力,其他基本上全是造假作弊,大家自己心知肚明,也要放平心态)这就导致了一个没有先例的情况,很多人也都是拿没有先例来抨击我,包括家里人也不支持我去实习,可能很多人的积极性就会下降,但我从来不会信所谓的不可能,如果没有先例,那我就会是第一个,他们不行,是因为他们没能力,他们坚持不下去。勇气是很重要的,当你发现你身边没有人像你一样,就很少会有人相信你,看好你,但好在,我不在乎。最初实习阶段:在最初3000沟通只有零星几个面试的时候,那感觉确实很不好受,沉没成本太大,得到的正反馈却太少,当时基本上都是一天学八个小时从来不间断,没有周末没有节假日,甚至过年我都在学习,这就导致我现在都会因为我周末偶尔休息的时候会有负罪感,我感觉已经是种病了,我也知道我也可以休息会但控制不了。当时我出去实习口袋里有1w块(这是我高中三年加大一一年存下来的,基本上是很抠很抠,一个月生活费有时候有一千多有时候就五六百,但也算得上是成功攒了一点钱)但第一次总会是很害怕,担心租房被骗,担心工作能力不行,担心被公司坑,担心学校原因导致不能实习等等,基本上在前面几段实习是根本不攒钱的,代课已经花了一万多,加上租房来回,基本上只能说堪堪不负支出,后来远赴北京,作为一个南方人,有很多不适应的地方,但现在回过头来一想,已经在北京呆了一年多了。我知道很多人要么担心学校因素,要么担心赚的还没花的多,种种因素导致了实习的困难,我也很害怕,我的钱会不会最终全部打水漂,学校会不会爆雷,我以后还能顺利实习吗等等。但对于我来说,我能对自己狠下心,我能接受通勤时间一个半小时只为节省那么几百块的房租钱,我能控制自己的消费的欲望,我能每个月大把大把把钱给代课,这可能就是我能够初期实习顺利的原因,这需要勇气,也需要对自己狠。实习中的抉择:在有了两段实习经历后,我的目标就朝着大厂进发,在去蔚来的中途,我oc了七八家中小厂公司,这里面不乏一些待遇极其优越的公司(有一家我真的差点就去了),但我最终还是都拒了,因为我清楚的明白想往上走的,只有公司title会帮你说话,没有人有义务理解你的困难你的坚持,好在最后去了蔚来,也算如愿以偿。从蔚来到美团倒是没有过多纠结,因为在最开始的梦中情厂就是美团,但从美团去腾讯这个决定或许是我人生中的转折点。美团多次挽留我,帮我沟通问hr,基本上就是一定能转暑期然后成功转正,仿佛这年薪40w的工作已经触手可得,所以在拿到腾讯offer的那一刻并没有多高兴,因为我意识到这可能是我此生最接近大厂的一次机会,可能大部分人都会选择留在美团,我也认为这一定是一个好的选择。我能够走到如今,是永远相信自己的判断,我的每一步都是在赌一个好的未来,只不过,这次赌注大了点而已,或许未来我再也进不了这些所谓的大厂,但我赌的不是选择错对,我赌我不后悔。所谓信念支撑:都说人要为自己而活,但我或许做不到,毕竟我身处人情社会,有许多爱我的人在等着我成长,我也不能接受因为能力而再次放弃一段感情,最近喜欢一段歌词:爱我的人相信我我一直在努力改变所有失败为你们而存在爱我的人感谢你你们的爱就算人生不是精彩我也要勇敢的姿态最后的最后,我想给大家传递的从来都不是一个普通学历进入大厂的意气风发,我想给大家传递的,是一股相信自己能够向上的信念和可能性。在没有打比赛能力,没有开源能力,没有学历等各个限制下,我帮大家试出了一条能够向上的路。如果没有先例,那我会是第一个。我们不需要弄虚作假,只靠自己一步一步脚踏实地,哪怕慢一点,不赌自己是否成功,只赌自己不后悔,问心无愧。最后送给大家,也送给自己一段话结束2025:生活可能没你想的那么好,也不会像你想的那么糟,人的脆弱和坚强,都超乎了你的想象,有时候可能脆弱的一句话就泪流满面,有时候你发现自己咬咬牙已经走了很长的路了
等闲_:感觉咱们双非的同学都有一个共性,想证明双非也是能进大厂的,我之前所有的标签都喜欢带着双非,仿佛这样可以像别人证明自己的实力,现在我却不再想证明双非到底能不能进大厂,我的生活的所有者是我自己,享受生活,接受结果
2025年终总结
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
162
1121
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务