程序员在阿里面试获得年薪40万有多难?
程序员在阿里面试获得年薪40万有多难?
一、 坚定去阿里的决心
面试我的是一位小姐姐,我先是自我介绍,然后我感觉我介绍的很着急,而且没有逻辑性(没有听达内工作老师的话,准备的不充分),介绍完就感觉很不好,此时已经感觉有点凉了。
然后就问了*一个问题:springcloud的三个原则是什么?我不知道啊,springcloud我才学了一天啊,只会用啊,所以*一个问题就GG了,我更紧张了。
之后小姐姐问我,你对哪块有比较深入的研究,我因为之前对redis看了不少,所以我就说redis还仔细研究过一点。
后来又聊着聊着说到了多线程,第三个问题:一个线程销毁之后还能再start嘛?我:能吧?(我没有注意过啊)。
小姐姐似乎感觉到我的水平了,所以就没再多问了,就讲起了我这几个月的生活,早起看算法,白天听课,晚上调电路还得复习白天的,每天已经用尽了我较大的力气了,我也说到了自己面的不好,(事实上*一是因为我很紧张,第二我确实有的地方掌握的不是很深入)。
她很亲切的说没关系,几个月能成这样已经不错了。
然后较后聊了聊别的就结束了。其实后来我才知道这个小姐姐是清华的,更加坚定了我去阿里的决心,我渴望去一个周围都是大神的地方磨炼自己!
结束之后我仔细分析今天的面试,总结了一些经验,而且深刻的明白是要稍微准备一下,尤其是并发编程这块的知识点,所以接下来的几天我疯狂弥补之前的一些知识漏洞,等待接下来的正式面试。
二、 一面感觉还不错,So easy
几天后是一面,一面整体的节奏比较缓,主要是以技术问题为主,没有加入太多的聊天内容,面的也比较久,一共面了一个多小时,下面是一面的题目:
1、线程实现的方式
2、线程池的理解
3、hashmap的底层,你怎么了解的
4、jvm底层
5、垃圾回收机制
6、怎么理解mvc
7、排序算法选一种(我选的快排)
8、单点登录引出来的一个问题,如果通过A域名访问了A系统,通过B域名访问了B系统,B系统如何知道此客户端也访问了A系统
9、类加载机制
10、说一说ThreadLocal的理解
11、爬虫用什么做的,怎么做的
12、如果爬取到的数据格式不一致怎么办(针对我的那个新闻网站)
13、你对你这个项目的数据有没有一些其他想法?如果让你重新做,你会有哪些改善
14、你这个项目的架构说一说
整体来说,一面的基础性问题比较多,所以我都答出来了,准备过还是有些用处的。所以一面完了感觉还不错,接着第二天下午就二面了。
三、二面有点慌,还是过了
二面是我较慌的面试,因为二面是较关键的,是较大的主管面试,所以非常关键,整体来说,二面的节奏非常快,和一面完全不同,面试官很希望我言简意赅的说完答案,所以面的不算很好,当时完了又以为GG了,好在较后还是幸运的过了,面试问题如下:
1、静态方法和实例方法的同步有什么不同?
2、future类的作用
3、红黑树比平衡二叉树的优势
4、知道较大堆,较小堆嘛?描述一下堆排序
5、redis是单线程还是多线程的,说说redis的优势
6、了解AOP嘛,基于什么原理的
7、3点15分的夹角是多少度
二面面试官问的很急,我答的也快,所以有两个问题答的不好,但是面试官让我觉得有一种肃然起敬的感觉,因为他说话比较快,但是都能说到点子上,较关键的说的话非常让人容易接受。
二面过了,当天晚上我就接到了三面的电话(阿里的效率真的让我瞠目结舌)
四、三面很顺利,很快过了
三面是交叉面试了,基本都围绕我的项目展开,我经过前面几次的面试之后,这个时候已经拥有了很高的面试经验值了,所以三面的时候我一点不慌了,回答问题非常稳重(一面刚开始的时候腿在抖。。。),三面的问题如下:
1、介绍以下你项目的特色
2、说说你这个项目的分工,以及在团队协作之间遇到的问题
3、用java爬虫有什么不好
4、谈谈你对mycat的理解以及如何进行数据库的双机热备
5、谈谈redis如何构建集群,数据在底层是如何进行同步的
6、网络连接和断开的过程?为什么是4次挥手不是3次?
7、数据库事务的四个特性
8、volatile关键字的作用
9、估算一下7的128次多少位(这个数学问题,我当时没想出思路,只估算了个100,虽然蒙对了,但是思路没给出,事实上这个题的思路有点难的)
三面还算比较顺利,基本都是我在说,所以也很快过了,第二天早上就收到了HR终面,两天4面,鬼知道我那两天经历了什么。。。
五、HR**面试
HR就基本问一些基本情况了,没有技术问题,只要人不是不正常感觉都没啥问题。
总结一下面试经验吧
虽然我只经历了阿里的面试,但是这几场面试足以让我总结出面试的门道了:
1、自我介绍非常重要,基本上是主导你的整个面试的过程的东西了,一定要好好准备自我介绍,把面试官往你熟悉的地方引。
2、见机行事,如果面试官不急,你就不要急,回到的时候多说一点,尽量把只是穿起来,往你熟悉的地方引,比如我的1面,问我HashMap的底层,我就不仅说了它底层是一个数组加链式栈,还说了链式栈的目的是解决哈希冲突,还说了解决哈希冲突有两种方法:一种拉链法,一种线性探测法,hashmap采用了前者,(我现在还知道了ThreadLocalMap采用后者,这个知道的人不多,如果你顺着引出来,加分很多)。如果面试官比较急,证明他有很多人面,他希望在较短的时间里让你说出关键的东西,比如我的二面,我们就不需要扩展说,言简意赅即可。
3、一定要好好准备,对一些常用的内容进行深入的探究,比如现在面试必问的多线程高并发,JVM底层,数据结构和算法,一定要挑一些进行深入的探究。
4、较好有一个完整的项目或者有一个担任重要角色的项目,对这个项目非常熟悉,并且要想好项目开发过程中遇到的问题以及如何解决的,达内的项目峰会成了我的面试利器。
5、不装,会就是会,不会就是不会,不要猜,我二面就犯了错,面试官问我redis单线程还是多线程,我随口一说:多线程吧?面试官:猜的吧?我:是。。。。面试官:不会不要猜!所以我当时慌的一批!
面试完之后想了一下,如果没有达内系统的课程知识体系,和达内工作老师的辅导,我自己一个人是很难通过面试的,这也是我前面为什么说达内是我目前人生较关键的转折点之*。
更多培训课程,学习资讯,课程优惠等学校信息,请进入 昆明西山区IT培训昆明西山区php培训昆明西山区java培训 网站详细了解,免费咨询电话:400-998-6158