昨天在整理电脑中的学习资料的时候,偶然发现自己半年前面试阿里暑期实习的时候的面经
注:每个人的面试侧重点不一样,有很大的随机性,这要看你简历撰写的内容,以及面试官个人想法了!
一、简历筛选:2021-6-13
简历撰写注意点:尽可能以精简的文字描述清楚自己完整的技术栈范围,切记不要什么都写(要以自己有把握的为主),写进简历里的东西就可能被面试官问到,如果只是把自己所有接触过但是并不是很熟悉的内容都堆积进去,面试官问你某个方面的问题时,自己答不上来,那么这一部分的技术栈不但不会成为加分项反而是扣分项。
重视基础,不要头重脚轻:前段时间帮忙看过一些同学的简历,简历技术栈板块内容很丰富,技术体系很全面,涉及到的常见技术栈基本上都写了。问题是,面试官如果从计算机网络、操作系统、以及 Java 基础、JDK 源码、JVM、数据库索引等方面去问问题时,一问三不知,给面试官的印象就是一味的堆积技术栈的使用,没有重视基本功。
简历中的亮点:比如 ACM、CTF、ICPC 等比赛的参赛奖项,以及技术博客可以适当突出(如果自己刷题数量较多,题解数量较多,甚至可以加上自己的 leetcode 首页),也包括英语六级、国家奖学金、年级总排名、专利等等。精心打磨自己的简历:让 HR 筛选的时候更容易通过!如果只是随便写写,即使你确实非常精通算法,或者技术能力强,底层知识了解非常透彻,也很可能在筛选时候就被淘汰!
二、素质测试:2021-6-13
几乎是刚投递完简历,就收到了素质测试。测试内容包括:成语、诗句、表格计算、图形、人格测试等。这一流程不难,就是比较考验耐心把(需要花不少时间)~
推荐资料书籍 PDF 版(文中提到的资料素质点赞+关注我后,直接添加小助理 vx:java9610 即可免费分享哈)
三、算法笔试(60min):2021-6-14 笔试总共 4 道题:一道涉及道回溯的智力题(面试官提示用回溯了,还是没写出来)、一道二叉树俯视图(解决)、一道动态规划解决背包问题(解决)、一道类似于剑指 offer 中的 mid 股票问题(解决)。几道题都不太难(相比于字节的笔试题来说),mid 题居多,一道 hard。推荐视频如下:
马士兵算法老师左程云带你7天刷爆牛客网,图解版思路+代码讲解,做上大厂offer直通车!!!_哔哩哔哩_bilibili
注:保险起见,个人认为力扣 200~300 的题量是非常不错的(树、链表、排序、递归、回溯、动态规划这几个要重点去刷),重点刷剑指 offer、LeetCode 小册这些题。要反复刷,有效率的刷。点赞+关注我后,直接添加小助理 vx:java9610 即可获取 PDF 版资料~
四、技术一面(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 的三次握手、四次挥手详细流程,以及状态转换过程,为什么要三次握手?又为什么要四次挥手?(八股文)如下一次讲清
据说这套Java八股文面试已帮助10000+人成功进入大厂!,内容包含(java基础、javase、redis、spring)_哔哩哔哩_bilibili
计算机网络相关问题: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 个以上部门面试被挂,就考虑换一个企业把,因为短时间连续挂,会影响下一场面试。
如果这篇文章能帮助到你,麻烦素质点赞+关注我一手,相关视频资料文档直接添加小助理 vx:java9610 即可免费获取哈