他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

闲话(长话短说):

本篇文章主要是回忆今年上半年的面试总结。现已入职阿里三个月,终于有时间写下这篇Java面经。

今年的开端有些特殊,疫情对我们的生活造成了很大的影响,这对于一名求职者来说,更是添上了一堵“难墙”。尽管如此,但我们也不能够错失金三银四的机会,该抓住的就要抓住。现在,很多互联网公司都已经采取线上面试的方式,所以我们只要提前做好准备,多投简历,顺利面试,就会有很大的机会拿下心仪的offer,而我也总算取得自己想要的成功,阿里4面成功过关。

个人情况介绍:

出生广州,在本地读书,毕业之后先在深圳找了一份工作,学历是211本科,资历各方面都不错,因此在简历上也能够充分体现我自己的优势,年前考虑返回羊城工作,方便照顾家人。海投简历之后,也接到了不少公司抛来的橄榄枝,只要面试顺利,基本上是公司任我挑的状态了。

以下主要分享面经和个人学习方法,会包括很多PDF文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图等等,均可以免费分享,私信【电子书】,即可领取~

他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

二、阿里面核心面试题

阿里一面
有些问题记不清了,下面列出了一面问到的问题:

自我介绍下自己,不超过3分钟(实际上我的自我介绍不到一分钟)
你感觉比本科阶段自己进步了多少,有哪些进步
研究生期间最大的进步是什么
你觉得你适合从事哪个方向的开发
synchronized与lock的区别,使用场景。看过synchronized的源码没
JVM自动内存管理,Minor GC与Full GC的触发机制
了解过JVM调优没,基本思路是什么
如何设计存储海量数据的存储系统
缓存的实现原理,设计缓存要注意
淘宝热门商品信息在JVM哪个内存区域
操作系统的页式存储
volatile关键字的如何保证内存可见性
happen-before原则
Lucene全文搜索的原理

一面总结

一面大概面了50多分钟,从面试官口中得知他是一个老员工,比我大不了多少,总体上还是聊得蛮投机的。最后的三个问题是我问面试官的,在回答我是否还有机会下次面试的时候说:竞争很激烈,不过机会还是有的。可以看出一面的问题不是很难,但是要得到面试官比较高的评价,还是需要一定的表达能力和对技术比较本质的认识的,如果在回答问题的时候能够做一些适当的扩展,自然会让面试官对你有不一样的评价。

我回答问题的遵循一定的步骤:先回答问题本质,再回答具体细节,最后做一些平时编程中的扩展。这样,会让面试官觉得你确实是在这个技术上面下过功夫的。

阿里二面:
终于在第二周的周四接到阿里面试电话,那叫一个激动啊。赶紧找了一个安静的地方,准备好后开始正式面试。二面的面试官是一个部门主管,自然还是有点小紧张的。这次面试官上来就直接问,没有一面的面试官那么好说话。

下面是面试过程中的问题:

自我介绍下自己,不超过3分钟(我的自我介绍仍然不超过1分钟)
你说你熟悉并发编程,那么你说说Java锁有哪些种类,以及区别
如何保证内存可见性
Http请求的过程与原理
TCP连接的特点
TCP连接如何保证安全可靠的
为什么TCP连接需要三次握手,两次不可以吗,为什么
AOP的
动态代理与cglib实现的区别(这个,醉得很厉害)
那么你说说代理的实现原理呗
看过Spring源码没,说说Ioc容器的加载过程吧
了解过字节码的编译过程吗(这个还真不知道)

二面总结

二面面试官问的问题都比较直接,答案也是知道就知道,不知道就不知道。这些问题一部分是基础,一部分是根据你的专业技能的来提问的。

面完后面试官对我的评价是:中规中矩,有机会下次面试。虽说是中规中矩,但听到面试官说有机会下次面试就感觉这次面试应该过了。虽说这次面试过了,但是我在思考的是为什么面试官对我的表现是中规中矩。后面我知道我的回答虽然答到了点子上,但是扩展程度不够,对一些问题的理解缺乏足够的实践经验。面试官告诉我,有时间可以去研究字节码的编译过程,以及JVM调优方面的知识(特别强调这个很重要)。

针对自己的不足,面完后又投入疯狂的看书写代码的生活中。虽然在面试中有一些回答不出来很正常,但是如果能够做到出乎面试官的意料,也是面试官对你很重要的加分项。

阿里三面(总监面)
三面与二面隔了5天,找了一个安静的地方开始电话面试。据说总监面会问项目多一点,所以在等待的这几天中给项目增加了几个比较肉的点。总监刚上来非常不客气,最尴尬的是总监那边老感觉有回声,因为不好意思提就忍了。

下面是三面遇到的问题:

自我介绍,不超过3分钟(这次好像时间更久了,也就2分钟多点)
说一下你对哪个项目比较熟悉
为什么做这个项目
项目采用了什么架构,数据库如何设计的
数据库由哪些表,为什么有这些表
主要有哪些核心模块,模块之间如何通信的
session放在哪里
如何保存会话状态,有哪些方式、区别如何
分布式session如何管理,你有哪些方案
学过数据结构和算法吗(当然),你说说二分搜索的过程
说一下快排的过程,写一下伪代码
了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
三面总结:

本以为三面是交叉面,没想到是阿里的总监面试。由于具体的技术问题在前两轮面试中已经问过了,所以三面后不会有具体的技术问题,总结来看,对自己做过的项目一定要深入,包括使用使用到的技术原理、为什么要使用这些技术。

针对项目,面试官关注的无非以下几点:

1.项目中某个比较重要的点是如何实现的(需要深入技术的原理)

2.遇到的最大困难是什么(有哪些),你怎么解决的?

3.如果需要扩展某个功能,如何降低系统的耦合度

4.如果针对某个功能进行优化,你会怎么设计和优化

对于写在简历上面的项目,自己对照上面四个问题进行思考,才会在面试中游刃有余。因为任何在简历中作假的行为,面试官只要详细问你就露馅了。在听到面试官说有机会下次面试的时候,心中自然是非常高兴的。

HR面(略)
总结:

认清了自己的短板,自己欠缺的是什么,确立自己目标。

疯狂看书、写代码、写博客、做项目,每天都在对自己进行总结和反思,正是这样一个不断的自我反思与努力的过程中,我得到了真正的成长与进步。也是这段经历让我能够面对阿里技术面试官的提问应答自如,从而顺利拿到阿里的offer。

阿里面试题答案:

因篇幅问题,面试题答案整理在pdf文档里,需要面试题答案的,记得后台私信【电子书】领取哦~

他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

三、为应对阿里面试,我做了哪些准备?

(一)调整心态,正面得失

面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中思路不清晰,语言不流畅,说话毫无逻辑,不断否定自己,这些问题归根结底都是面试心态出了问题。所以,调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(二)提升技术,扩宽知识

对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,不断提升自己的技术,扩宽知识,达到一定的高度和深度。

那么如何提升自己的技术,扩宽自己的知识储备呢?

以下是我个人的一些做法,希望可以给各位提供一些帮助:

31天啃完346页的pdf文档
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

四、pdf知识点提炼

JVM部分:

线程
JVM 内存区域
程序计数器(线程私有)
虚拟机栈(线程私有)
堆(Heap-线程共享)-运行时数据区
JVM 运行时内存
垃圾回收与算法
标记整理算法(Mark-Compact)
分代收集算法
Parallel Scavenge 收集器(多线程复制算法、高效)
阻塞 IO 模型
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(二)Java集合部分:

接口继承关系和实现
TreeSet(二叉树)
LinkHashSet(HashSet+LinkedHashMap)
HashMap(数组+链表+红黑树)
线程安全(Segment 继承 ReentrantLock 加锁)
HashTable(线程安全)
TreeMap(可排序)
LinkHashMap(记录插入顺序)
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(三) Spring部分

Spring 核心组件
Spring 常用模块
Spring 主要包
Spring 常用注解
Spring IOC 原理
Spring APO 原理
Spring MVC 原理
Mybatis 缓存
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(四)微服务部分:

服务注册发现
API网关
配置中心
事件调度(kafka)
服务跟踪(starter-sleuth)
API管理
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊
(五)算法与数据结构部分
说⼀一下⼏几种常⻅见的排序算法和分别的复杂度
用java写⼀一个冒泡排序算法
描述⼀一下链式存储结构
如何遍历⼀一颗⼆二叉树
倒排⼀一个LinkedList
⽤用java写⼀一个递归遍历⽬目录下⾯面的所有⽂文件(directory.listFiles())
⼆二叉树与红⿊黑树:
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(六)电子书:

他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

(七)刷题:

如何刷题?

这是很多现在面试者心中的困惑,我们都知道,面试前刷题是很有必要的,毕竟很多题目都有一定的共性,刷足够的题目就能够做到举一反三,甚至在面试时,被问到原题,也能够侃侃而谈。

那么刷题如何进行呢?

建议:最好找一些历年的面试原题,分专题来对自己进行训练。

以下是我私藏的面试题库:
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

源码面试解析视频:

他终于如愿的拿到阿里offer了,整整用了两个月的时间啊

结束语

对于大厂面试,我最后想要强调的一点就是:心态真的很重要,这是决定你在面试过程中发挥的关键。若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除紧张的心理状态的关键,只要你复习充分了,面试过程中自然就要有底气得多。

以上内容中提到的所有学习资料、面试资料,均可以免费提供,希望大家在即将到来的金九银十中面试顺利,提前备战,拿下自己心仪的offer。

答案资料获取方式:
他终于如愿的拿到阿里offer了,整整用了两个月的时间啊