【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

给的是P6,base毕竟低,胆小,没敢和hr去撕逼,argue就不说了,同时也是红线就不透露太多了。git

说一下我大体状况吧,普通二本软件工程毕业,刚开始在一家小的创业型公司crud,随后进了一家独角兽(2b方向),也是crud。github

经验3年不到,其实对我而言,优点不大,属于那种简历送给hr,还没机会给对应部门看,就被砍的那种,你懂的!web

简历,最好能找大厂的小哥哥帮你看看,改到他们以为能够过hr的法眼,让他们帮你内推,这样基本能获取到面试的机会,否则机会都没有,只能作大厂梦了。面试

简历最好有亮点,可以量化的东西,也别写的太浮夸了,明明是个小的系统,非要吹几百万的qps的话,即使简历过了,大佬面你时候,你吹不出来,你懂吧。redis

不少人其实和我差很少,每天crud的,哪有什么亮点?算法

有的,你要相信本身,你遇到过什么问题,怎么解决的,用了什么方法,效果怎么样的?spring

你把这个4连击想破头你都要想出来,组成一段话,你的亮点就出来了。sql

固然,亮不亮就看你平时了,实在没有,那你就回去重构系统,模块。数据库

否则就最好别去面了,由于你啥都拿不出手。最简单的来讲,就是产品经理提了什么奇葩的需求,你怎么解决了,你能巧妙的形容出来都是亮点。编程

关于简历这块的话,仍是让大厂小哥哥帮你看看先。而后里面涉及到的全部的东西,你必须会“自圆其说”,你写了什么,你必须会,而不是充字数,要么别写。

我碰过一个dd面试官把我写的全部东西问了个遍,很酸爽,不过我基本都答出来了。

简历这部分简单说到这。

准备,全部的面试是要准备的!(技术大牛当我没说)

对于我这种面高级的话,通常而言你简历上写的都必须会,并且必须有一些是你的亮点,你得有一些深刻的了解,回答让面试官以为你这个小伙子不简单,有点东西。

Java集合好比说HashMap和ConcurrentHashMap我以为,你最好在平时能去耐心读一下源码,搜一搜相关的博客,最好能知道每一个参数为何设置成这么大?有什么好处?为何?你会发现很多东西,网上也有不少视频能够去学。

JUC包,毫无疑问的,你得去学,哪怕你平时编程根本不去用,可是你得会,只得知道有这个东西,你至少得知道aba,cas,aqs,unsafe,volatile,sync,常见的各类lock,死锁,线程池参数和如何合理的去设置,你必须明白自旋,阻塞,死锁和它如何去定位,oom如何定位问题,cpu太高如何定位等基本的操做,你能够没有生产调试经验,但不表明你能够不会top,jps,jstack,jmap这些可能会问的东西。以及可能衍生的jmm模型和mesi协议等。

JVM毫无心外,大厂必须问,垃圾回收算法,垃圾收集器,jvm内存模型,每一个区域用途,各类oom的种类,jvm调优经验,没有你也要作过,本身去设置启动参数,知道常见参数的含义,类加载过程,双亲委派,何时young gc,full gc,各类状况进入老年代的方式,你知道的越多越好,由于吹起来就越自信,举个例子,逃逸分析是什么?markword里面有什么?

Spring,最好能抽空看看源码,最起码bean的生命周期,如何解决循环依赖,父子容器,还有boot的启动流程,事务实现原理,动态代理原理等,你知道越多越好。

Dubbo,由于我用的是dubbo,并且我写了,这个也是高频,写了必须问的,他的设计框架,负载均衡,spi机制,通常顺势会提到zk,选举算法,分布式锁等,一些常见的dubbo问题能够去搜,网上的基本都有。可能会顺带去问cloud的问题,生产没用过不怕,你如今能够本身clone一个项目,最起码,互联娃,你得知道还有这个玩意儿,还有他集成了啥,好比rureka,hystrix,ribbon,feign,zuul这些常规的东西吧,他们作什么的?

Redis,必须会的,我这方便还算懂得多点,能够和面试官大战几个回合吧,应该不至于上来被打趴下,单线程模型,aof,rdb,rewrite,主从,cluster,哪些类型,不要再说常规的5个了,多说几个让你区别其余小哥,包含一些缓存常见的问题击穿、穿透、雪崩、数据一致性等,你必须会,不会基本没戏,一致性hash,布隆过滤器的原理,为此我还去了解了geohash的原理以及google s2的原理,底层数据结构sds和跳表等,你多学点,准没错。

Mysql,事务,锁,索引,b+树,主从这些你必须会

Mq ,我用的rocketmq,你得知道为何用,重复消费,顺序消息,事务消息,高可用,消息丢失,挤压场景,整个消息发送消费的流程,读过源码更佳,更好吹

Netty的话,零拷贝,bio,nio,aio,架构设计怎么样子的?用过看过更好

算法,建议去刷题,我运气好,简单的算法让我碰到了,一些快排,堆排,二叉树相关的,链表反转,成环,环节点,跳楼梯等常规的简单算法建议刷刷,双指针,dp,递归这些仍是多找找感受,大数据内存有限的场景的统计,有时间一些middle能够去试试,手写红黑树你要是能够,那我估计算法你稳了。

网络,http,tcp,https,udp,7层网络协议等,最好结合本身理解,背,你都要背下来。

还有就是一些分布式事务实现,架构实现,好比抢红包,高并发下单等常规的场景设计,你来设计,你怎么去设计?多找一些大牛或者上网本身查,帮你看看有哪些漏洞,有那些解决方案?业界有哪些好的中间件?

大部分的准备工做差很少了,我以为差很少能够去试试了

通常面试开始都同样,自我介绍+最熟悉的系统介绍,最后都是问你想问他什么。时间有点久,我可能没记全面试题,见谅:

一面40min:

sync的底层实现,锁优化,和lock的对比等

jvm参数调优详细过程,到为何这么设置,好处,一些gc场景,如何去分析gc日志

redis数据结构,使用场景,微博场景使用redis如何去设计用户关系

线程池参数设定,为何这么设定,做用?7大参数

spring的循环依赖如何解决?为何要三级缓存?

优先级队列的底层原理?

基本都是扣着你的项目去问,一面主要以基础为主。

二面1h:

基本就是设计问题了

结合你项目问你如何设计,提出漏洞,你怎么解决?如何改进,万一挂了?加一台机器有没有问题?若是我非要不出问题怎么办?

高并发下单扣库存场景如何设计

rocketmq架构设计原理(大方向)

dubbo框架实现原理(大方向)

最近读了什么书?平时怎么学习

三面1.5-2h:

两个大佬一个问一个找漏洞,逮到没说清的就继续问,压力面

也是结合项目问,为何这么设计?让你去优化,你怎么优化,引导你用一个合理的更好的方式去优化,数据库的设计等

在公司作了什么事情,各个系统业务线都是作什么的,你的绩效,手写算法链表反转,还算简单了

看起来问的不多,可是是不断的否定你作的项目,在他的引导下去设计一个更好的系统,的确,他们说的是对的,挺厉害的,即使没成功,也能学到一点东西的。由于问的过久了,我细节记不清楚了

四面20min:

可能看我说了jvm,boss直接开始怼我jvm,还好我有准备,基本都接下来了,好比一些sms的过程,full gc作什么了之类的常规问题,很奇怪这时候问我基础,哈哈

后来有个问题就很玄幻了,把你知道全部的中间件全说出来,估计看我广度吧,我是一口气说了几十种吧。

hrg面:

嗅味道了,阿里味必须足,为何来,之前为何不来?

从毕业到如今有什么改变?

一句话总结下本身,反正你需有有强烈来的欲望就对了,此时此刻,非我莫属,哈哈!

强调一点,简历写了啥,你必须复习到位!多准备准备,失败不怕,总结经验,努力学习!

你要悄悄的拔尖,而后惊艳全部人!

总结

这也是个人一个读者,以前还找我内推过咱们公司的。

最后去了阿里,挺好的,看你们的面经我也很爽,各类扫盲。

不说了我今天准备早点回家,这个读者跟我说植发20一根,我。。。

我是敖丙,一个在互联网苟且偷生的工具人。

最好的关系是互相成就,各位的「三连」就是丙丙创做的最大动力,咱们下期见!

文章持续更新,能够微信搜索「 三太子敖丙 」第一时间阅读,回复【资料】【面试】【简历】有我准备的一线大厂面试资料和简历模板,本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。