先说一下,你们可能看到我的面经也会觉得很惊奇,为什么其他面经里面出现的问题,我这里几乎都没出现,而且面试流程也走的这么快。下面就看一下我的阿里春招面试奇葩之旅。
阿里一面 2019年03月28日
- 你是怎么学习java
- 你看过什么比较经典的java方面的书
- 你觉得java中有什么类你很喜欢
- java中的锁
- 自定义无锁队列,不能使用CAS
- JVM内存划分
- 能不能自定义java.lang.String:考察java类加载机制
- top k问题
- 有什么想问他的,紧接着后面问了我一个你面试过了腾讯吗:我回答:不知道。这个很失水准。后面仔细想想,主要是自己当时因为最后一个topk问题没回答出来,脑子正处于蒙的阶段。
总结
- 开放性问题,就把自己知道的全部讲出来,只要他不打断你,你还有的说就讲。另外要给他一个你在学习过程中是怎样看待这个问题,怎样解决这个问题的。不要只是简单的罗列。
- 千万要保持清醒,不然就被套路了。
阿里二面 2019年03月29日
- 自我介绍
- 你是怎样学习java
- 在学习java中遇到的困难
- 你有没有在学习java中遇到瓶颈:我主要说的是学习java web中遇到配置问题,然后描述了一下自己学习的经历,说刚开始很痛苦,也不知道如何解决,经过一次次的解决终于找到如何解决问题的方法,也知道出现了问题怎么去google搜。后面自己在遇到问题的时候,简单的一眼就可以看出来,复杂的就按照先分析问题,然后按照分析出来的思路一步步的解决,如果思路有问题,在查找解决思路的过程中及时调整。
- 你觉得你取得的最大成就是什么
- 在参加阿里比赛的过程中遇到的最大困难是什么:我回答的是自己转变思路很难,以前都是在命令编程模式下写程序,忽然转到异步模式下,很不适应。
- 事务:这个问题很宽,没有具体说什么事务,我就办自己知道的mysql事务全部说给他听。其实后来想想还可以讲讲分布式事务,毕竟我也稍微懂点。
- 你有什想问我的
总结
自己在回答问题的时候想到哪就说道哪,没有一个具体明确的思路,所以面试完需要自己整理自己学过的知识点,然后形成一个体系。
阿里三面 交叉面 2019年04月1日
- 自我介绍:我主要介绍了一下阿里天池中间件大赛的项目,然后在中间也分析了自己如何解决问题,如何选择框架,以及自己如何去拓展这些问题,从中学习到的知识点。我觉得这个思路其实挺好的,因为面试官一直说很不错。
- FOTA项目介绍:这个是一个简单的前后端分离的web后端管理系统,然后向他介绍一下。他问这个项目的原因是因为觉得我前一个项目已经被阿里的面试官都问过了,就不想在问那个项目。在介绍的时候分析了问什么前后端分离,选java原因,选择springboot的原因等等。
- 你是怎样理解springboot中约定由于配置:讲了一下自己学习java web的经历,然后说了配置的难点,然后说了一下这些约定的好处。然后说了一下自己的理解,只有先熟悉了整个框架如何使用才能很好的去分析流程很原理。
- bean的声明周期:我说知道的几种,以及他其实如何实现的。
- spring创建bean的流程:简单的说了整个流程
- beanFactoryPost,FactoryBean,BeanPostProessor等等的作用
- 如何设计一个秒杀系统:这里还是没有整理好,想到哪就说到哪。其实应该按照从请求的入口到访问数据库的流程来整理。我的回答是先做页面静态化,这些全部交给nginx来做。接着说将这部分系统分离出来,以免影响其他功能的访问。然后将商品数量放到redis中,使得数据的访问尽量都到redis中,而不会到mysql中。避免缓存被击穿。这一点我觉的我对redis不怎么熟,也就每太仔细说。然后说了一下用队列来防止redis中的数据成为热点数据,从而降低访问量。接着提供限流和降级,防止系统出现崩溃。
- 快速排序
- 俩数之和问题
阿里四面 终面
- 介绍一下自己:这里主要是介绍自己经历
- 介绍一下项目中的关键点
- 你最近在学习什么新技术
总结
这一面总体不是很好,首先自己是跑到一个安静的地点接的电话,当时气喘吁吁。因此自己在面试的时候最好处于一个很好的状态,不要像我这样。然后就面试,因为没怎么准备自我介绍,所以比较蒙。另外这一面就是总结面,没什么技术问题,主要是聊聊你的学习情况,所以最好多看看面经,准备这些比较长问到的问题。