草庐IT

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

兴趣使然的草帽路飞 2023-04-12 原文

大家好,我是路飞!昨天在整理电脑中的学习资料的时候,偶然发现自己半年前面试阿里暑期实习的时候的面经

注:每个人的面试侧重点不一样,有很大的随机性,这要看你简历撰写的内容,以及面试官个人想法了!

一、简历筛选: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个以上部门面试被挂,就考虑换一个企业把,因为短时间连续挂,会影响下一场面试。

有关21年6月阿里巴巴Java暑期实习面经回顾(已上岸)的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  3. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  4. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  5. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  6. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  7. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  8. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  9. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  10. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

随机推荐