21年6月阿里巴巴Java暑期实习面经回顾(已上岸)

简介: 大家好,我是路飞!昨天在整理电脑中的学习资料的时候,偶然发现自己半年前面试阿里暑期实习的时候的面经注:每个人的面试侧重点不一样,有很大的随机性,这要看你简历撰写的内容,以及面试官个人想法了!

一、简历筛选:2021-6-13

简历撰写注意点:尽可能以精简的文字描述清楚自己完整的技术栈范围,切记不要什么都写(要以自己有把握的为主),写进简历里的东西就可能被面试官问到,如果只是把自己所有接触过但是并不是很熟悉的内容都堆积进去,面试官问你某个方面的问题时,自己答不上来,那么这一部分的技术栈不但不会成为加分项反而是扣分项。

重视基础,不要头重脚轻:前段时间帮忙看过一些同学的简历,简历技术栈板块内容很丰富,技术体系很全面,涉及到的常见技术栈基本上都写了。问题是,面试官如果从计算机网络、操作系统、以及Java基础、JDK源码、JVM、数据库索引等方面去问问题时,一问三不知,给面试官的印象就是一味的堆积技术栈的使用,没有重视基本功。

简历中的亮点:比如ACM、CTF、ICPC等比赛的参赛奖项,以及技术博客可以适当突出(如果自己刷题数量较多,题解数量较多,甚至可以加上自己的leetcode首页),也包括英语六级、国家奖学金、年级总排名、专利等等。

精心打磨自己的简历:让HR筛选的时候更容易通过!如果只是随便写写,即使你确实非常精通算法,或者技术能力强,底层知识了解非常透彻,也很可能在筛选时候就被淘汰!

二、素质测试:2021-6-13

几乎是刚投递完简历,就收到了素质测试。测试内容包括:成语、诗句、表格计算、图形、人格测试等。这一流程不难,就是比较考验耐心把(需要花不少时间)~


三、算法笔试(60min):2021-6-14

笔试总共4道题:一道涉及道回溯的智力题(面试官提示用回溯了,还是没写出来)、一道二叉树俯视图(解决)、一道动态规划解决背包问题(解决)、一道类似于剑指offer中的mid股票问题(解决)。几道题都不太难(相比于字节的笔试题来说),mid题居多,一道hard。

注:保险起见,个人认为力扣200~300的题量是非常不错的(树、链表、排序、递归、回溯、动态规划这几个要重点去刷),重点刷剑指offer、Top100这些题。要反复刷,有效率的刷。

四、技术一面(40min):2021-6-16

首先是自我介绍(5min左右,不要太长也不要太简短)~

JMM内存模型相关问题,大概就是工作内存与主内存的通信原理、为什么要引入JMM,这几部分(狗头,不要把JMM内存模型跟运行时数据区(堆、栈、方法区、程序计数器、本地方法栈…)搞混了,背八股文可以,但是不要不懂为什么而死记硬背!)

CSDN写博客相关的问题:什么时候开始写博客,写博客给你带来哪些收获?平时怎么自学的?简述一下自己的学习历程。

写博客很重要!之前也被别人质疑过:“你写的博客没人看,为啥还要花时间去写这些没用的文章?”。不要管别人怎么评价,自己坚持去积累下去,不光可以增加自己对某些知识的进一步理解,而且随着粉丝量的增多,写博客给我们带来了一些额外的收益,以及一些人脉,在CSDN上结识了很多同届大三拿到BAT Offer的牛鬼蛇神大佬,也有工作多年经验的老油条,跟着他们不光能学到东西,最重要的是眼界开阔了。

我之前一直认为,能进BAT大厂的只有985-211的名校学生,或者高学历的研究生才可以,普通本科就直接把自己否定了。

但事实并非如此,在CSDN,有幸结识了不少同为普通本科拿到大厂Offer的大佬。所以,不要盲目自信,也不要太过于轻视自己,在没有真正尝试取得结果之前,不要盲目否认自己的努力和付出!


Redis相关问题(问了几个常见的八股文问题):缓存击穿,缓存穿透,缓存雪崩;布隆过滤器实现原理,不使用SETNX如何实现分布式缓存?

项目相关问题:项目中哪些地方做了缓存,不同的缓存有什么区别?ES-MQ如何实现数据同步,项目中做了那些优化,有没有涉及到分表? 还做过那些项目简单介绍一下,最好提供一下项目链接,或者Gitee仓库链接。

Jvm垃圾回收相关问题:回收算法,回收策略,回收机制,这块我比较熟悉,巴拉巴拉从回收策略迭代,到回收算法迭代,再到FULL GC、YOUNG GC,STW 。。。讲了十几分钟,还没说完,面试官说:“好了好了,我知道这块你比较熟悉了,我们进行下一个问题”。(这部分八股文面经背的很熟悉,Java虚拟机这本书也看了2遍了哈哈)

Jvm运行时数据区相关,堆和栈的进一步详细划分及其作用?(这一块谈到了,操作数栈和本地方法表中运算的流程,这部分还是很有趣的,可以去找个案例去分析一波,例如 a++ + ++a + a-- 的结果)。

收尾问题:CSDN上你写过的最满意的一篇博客是那一篇?上一家实习经历相关问题,实习做了什么,介绍一下具体是负责那一块任务怎么做的,实习了多久。

反问环节:问了部门业务类型,用到的技术栈等等。

还有一些零碎小问题记不清了,主要就是上面这些,电话收到面试通知的时候非常激动,也很害怕,害怕被面试官完虐,毕竟这是第二家大厂面试,上一次面字节,准备不充分(裸面),一面被虐的体无完肤。


五、技术二面(40min):2021-6-18

二面换了一个面试官,还是先让我做自我介绍~

接下来还是聊项目,首先介绍一下项目的整体架构,然后提问实际场景题:“Kafka生产者生产数据时,如何保证多线程条件下生产了多条数据,而消费方只消费了其中1条的情况?”

“还是上面这个问题,如果加锁的话(单体应用可以加锁解决,但是分布式下无效),在分布式环境下如何解决呢?”(分布式锁 SETNX)。

实习经历相关问题: “你在上一家公司实习,具体负责那一块儿内容,开发过程中遇到了那些问题,你是怎样处理和解决的?”

计算机网络相关问题:TCP的三次握手、四次挥手详细流程,以及状态转换过程,为什么要三次握手?又为什么要四次挥手?(八股文)

计算机网络相关问题:UDP和TCP的区别,如何使用UDP去实现一个简单的TCP?(八股文)

JVM相关问题:Java语言和C++在执行效率和编译层面的区别?为什么Java效率低,还需要使用JVM?Java是如何解决这个问题的?JVM中即时编译的几种实现方式有了解过吗?

开阔场景问题:在校期间有没有用所学的技术栈去实现一个解决实际需求呢,请你说一下是怎样做的?

操作系统相关问题:为什么要将操作系统分为用户态和核心态?

MySQL数据库相关问题:MySQL索引数据结构,为什么要使用B+树,而不采用其他数据结构?例如Hash表,B树,红黑树?

Java基础问题:问一个简单问题,JDBC链接数据库的流程能说一下吗(送分题)!

数据库相关问题:什么是回表查询?什么是索引覆盖?

收尾问题:你当前除了阿里,还在面试其他公司吗?

反问环节:略。

二面效果非常好!面试官人超级暖!面试官这边刚挂断电话,HR就告诉我面试官对你评价很好,当场二面就过了)不得不说,CSDN写博客给我这个没竞赛,没学历的普通在校生加了很多分!


二面是我最紧张的一轮,紧张的时候语气助词,嗯嗯…,然后…然后… 哈哈,还好面试官很暖,很快就把节奏带正了!


可能有小伙伴会疑惑,为什么没有深入去问你JDK集合、线程池、锁、原子类这些源码?这个我也不太清楚,不过面试官在面试的时候,貌似也打开我的博客看了,这几个部分的源码学习,我写的文章还是比较多的,虽然体会不到 Doung Lea 大神的高端思维,也不能像那些多年经验的老油条一样深入体会其原理,但是这部分我准备的时间精力还是比较长的,至少不能说是完全没看过源码。有兴趣的小伙伴可以看一下我的JDK、JUC源码分析专栏,基本上常见集合源码、CAS、原子类,AQS,并发集合源码,红黑树,基本上都写过文章!


六、技术三面(20min):2021-6-23

三面貌似是主管面,刚开始还是先自我介绍~

简单聊一聊项目,项目是否上线过,有没有遇到过上线后刚开始项目运行访问很流畅,之后接口访问越来越慢的情况?

智力题1 两根不均匀香,求15分钟如何表示(没答上来)

智力题2 抓果冻(排列组合问题,还是很容易回答的)

SQL场景题1:写SQL,查找一张表中分数在0-60 60-80 80-100 三个层次的学生人数。

场景题:如何自己去实现一个PRC框架,说一说你的思路?(没答上来,那时候还没学过Netty,也没看过这一部分的面试题)

大学期间学了哪些课程?看过那些书籍?坚持写博客持续了多长时间?

动态代理的实现原理,(JDK动态代理和Cglib动态代理)

Linux相关问题:查找某个目录下所有以某个字母开头的文件。

Linux下,如何查看某个文件的后10行,并将其写入另一个文件中。

计算机网络相关问题:HTTPS的实现原理,如何保证通信安全?

计算机网络相关问题:HTTPS建立连接的流程

Git和SVN设计思想上的差别?(没答上来)

反问环节:略。

七、HR面(10分钟) 2021-6-28

接到HR面电话的收获,激动得一批,但是当时已经接了B站的暑期实习,人已经到了上海了,所以最后没接阿里暑期实习的offer。大概问了一些琐碎小问题,比如什么时候可以来实习,实习时候的薪资待遇,为什么放弃了来阿里实习,之后有机会的话还会选择来阿里实习吗?


八、总结

整体面试流程非常满意,面试官和HR小姐姐人都超级棒。


由于我自己之前网投的原因,简历被卡在阿里健康,一直没给我安排面试时间,简历就一直锁着,没办法投递阿里其他部门。把问题反应给HR小姐姐后,他提前帮忙给我安排面试,二面通过后HR和一面面试官帮忙去线下找Boss和招聘员,从阿里健康部门那边要回我的简历(花了几天时间),又继续安排我的第三轮技术面,非常感激!


注意:大厂各个部门,子公司是共享招聘信息的,挂一次会被记录,所以不要毫无准备就无脑投递,如果一个企业生态连续3个以上部门面试被挂,就考虑换一个企业把,因为短时间连续挂,会影响下一场面试。




相关文章
|
7月前
|
Java 关系型数据库 MySQL
兴奋!阿里巴巴首推“Java进阶必备宝典”,理论到实战,一键搞定
作为一名Java方向的程序员,打好夯实的基础是非常重要的,现在大厂面试对于程序员基础知识的掌握考察也越来越严格,虽然说现在技术更新比较快,但基础扎实才能够更深入的去理解每一个知识技术点。
|
7月前
|
设计模式 消息中间件 算法
【实习总结】Java学习最佳实践!
【实习总结】Java学习最佳实践!
97 3
|
3月前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
140 11
|
3月前
|
安全 Java 关系型数据库
代码规范Java阿里巴巴
本文介绍了阿里巴巴的《Java开发手册》,这是一份业界公认的代码规范手册,涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度。手册通过强制、推荐、参考三大类规约,详细指导开发者编写高质量的Java代码。文中还提供了常见问题的正反例对比,如方法参数类型一致性、SimpleDateFormat线程安全等问题的解决方案。此外,还介绍了如何安装和使用阿里规范插件来提高编码效率。
690 9
|
3月前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
4月前
|
存储 Java 测试技术
阿里巴巴java开发手册
这篇文章是关于阿里巴巴Java开发手册的整理,内容包括编程规约、异常日志、单元测试、安全规约、MySQL数据库使用以及工程结构等方面的详细规范和建议,旨在帮助开发者编写更加规范、高效和安全的代码。
|
4月前
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
7月前
|
JavaScript Java 关系型数据库
基于 java + Springboot + vue +mysql 大学生实习管理系统(含源码)
本文档介绍了基于Springboot的实习管理系统的设计与实现。系统采用B/S架构,旨在解决实习管理中的人工管理问题,提高效率。系统特点包括对用户输入的验证和数据安全性保障。功能涵盖首页、个人中心、班级管理、学生管理、教师管理、实习单位管理、实习作业管理、教师评分管理、单位成绩管理和系统管理等。用户分为管理员、教师和学生,各自有不同的操作权限。
|
7月前
|
存储 算法 Java
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。 面试中总结了200道经典的Java面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~ 因为篇幅原因,大部分的内容就不给大家一一展示了,需要获取的小伙伴可以直接点击此处取到! Java平台相关 1、JDK、JRE、JVM 分别是什么关系? 2、为什么 Java 被称作是“平台无关的编程语言”? 3、Java 和 C++ 的区别? 4、什么是字节码?采用字节码的最大好处是什么? 5、Java运行的过程? 6、
311 4
|
7月前
|
存储 算法 Java
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。 面试中总结了200道经典的Java面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~ 因为篇幅原因,大部分的内容就不给大家一一展示了,需要获取的小伙伴可以直接点击此处取到! Java平台相关 1、JDK、JRE、JVM 分别是什么关系? 2、为什么 Java 被称作是“平台无关的编程语言”? 3、Java 和 C++ 的区别? 4、什么是字节码?采用字节码的最大好处是什么? 5、Java运行的过程? 6、