网易+阿里内推面经
网易+阿里面经
开篇我要先喷自己了,撸了几百字手贱关闭文档选了不保存,真是个XX。喷完了,心情舒服点了,重新码字。
学校论坛惯例,不敢自称水硕,楼主某非重点985学校非计算机专业渣硕一枚。因为之前看了不少大神的面经,说好拿到offer来发面经还愿,顺便攒点人品,现在急需人品。
写在前面
心态很重要。
自信很很重要。
缘分很很很重要。
三句话基本可以概括找工作的感受。楼主准备找工作准备的比较晚,教研室惯例不允许实习,所以也没有实习经验。恰巧实习生招聘的时候,楼主做的一个风电场监控软件要现场调试,于是跑回我大山东的风电场待了一个月,完美错过实习生招聘刷怪刷面经的机会。之后完善项目,加上又去美丽的(荒凉的)内蒙古边境附近的风场出了个差,回来已经六月下旬了。平复了下心情,忙了些乱七八糟的杂事,把手头事情都抛开已经快七月中旬了,终于,在这个时候,慌了。
谈谈心态
这个时候就要说下心态的问题了,一定不要慌,找到自己的节奏。首先你要对自己有一个比较明确的剖析,你要知道自己最需要准备的是哪一部分,平时的积累是很重要的,但是临阵的磨枪也是可以有很大效果的。这时候要谢谢师兄们前辈们的面经,因为很多的基础知识重点都整理的非常清楚,我也就不再重新整理了,附上两个:Xoper.ducky大神面经和Java研发知识点整理。另外我是不太喜欢狂啃书本的,很多东西喜欢在博客上学习,感觉有很多博客写的真的是蛮通俗易懂的,再附上一个我学JAVA基础的时候看的博客,skywang12345的博客。另外牛客讨论区真的是有非常多的有价值的资料,可以多翻看一下。
基本上,你对自己有了一个合理的认识之后,除去一些不可抗拒因素,你就可以开始按照自己的情况安排时间准备一些面试的基础了,如果觉得基础比较差那就早做准备。这时候心要静,不要被周围影响,因为可能周围有很多很强的人准备的很充分,会搞得你心浮气躁。但是实际上,你只需要有目标得提升自己就OK了,这个过程中尽量让自己的知识变得系统起来。
谈谈自信
事实上,我开始也是不那么自信的。8月2号参加了网易内推的笔试,因为之前没有参加过笔试,当时是懵逼的。这里要提一句,现在的大公司的笔试大部分都是线上的笔试了,都要在线编程的,跟我本科毕业时候的都不是一个套路了啊=。=。。。靠着初中高中搞信息竞赛那么点底子再加上那么点运气,侥幸通过了网易内推笔试,8月8号收到通知,要8月12号早上去杭州面试。当时我的第一反应就是不去了。因为我觉得自己完全没准备好,准备了二十天,也只是把JDK源码撸完,把JAVA和JVM的知识过了一遍,理了理。像什么操作系统、网络、数据库啥啥啥的都没怎么系统起来看,去趟杭州路上还得折腾两天,还得花我两千大洋,自己准备这鸟样,我的内心是崩溃的。经过一番思想斗争,本着混波面经,顺道蹭女神师姐一顿饭的想法,还是决定去试试。
最后事实证明,你永远没有你想的那么弱,有的事情不尝试机会只有0。找工作,面试,信心真的很重要。有的时候基础只是一块敲门砖,而面试看得不只是基础,还有很多你工作学习中沉淀下的思维方式以及解决问题的能力等等的东西。而你的自信,在面试的时候绝对可以给你带来意想不到的结果。
最后谈谈缘分
作为一个迷信的码农(手动笑哭),我觉得缘分真的很重要,缘分到了很多事情可能是水到渠成了。网易是我投的第一个简历,第一个笔试,第一个面试,也是第一个offer。事实上后来我海投了很多公司的内推简历,然而简历各种被鄙视,最后真正给了我面试机会的只有杭州的两家——阿里和网易。后来阿里止步部门交叉面,网易顺利拿到offer。我觉得既然缘分已经到了,也就不再继续找了,终于赶上了末班车,在9月1号的凌晨结束自己的校招之旅。感觉自己跟其他疯狂收割,货比三家的同学比较起来,真是没有追求啊(再次手动笑哭)。
后来又有一个苏州的同程旅游,之前海投的时候投的,不知道为啥面试都那么晚了。这家公司还是有点水的,就打电话技术面聊了一个小时,主要聊了聊项目还有WEB框架,做项目遇到哪些坑啊,问了几个项目上的开放性问题,再有些基础的JVM,JDK源码,数据库,算法的东西,面完之后连hr面都没有,隔了几天直接通知给offer,11*14,但是当时已经有网易offer了也就没要这offer。这里就不详细写这个公司面经了。
所以骚年们,碰到喜欢的公司,果断上啊,不要怂,万一缘分到了呢!
终于逼叨叨完了,我可以上干货,虽然这干货水分还是有点足=。=
网易
网易的面试还是看运气的,碰到的面试官不一样问题侧重点不一样,有的人一面二面都一个多小时,狂问基础。我是一面10分钟,二面半个小时,都是项目居多。
通过我问当时面试的同学的情况来看,似乎如果你没有什么有价值的项目那么面试官就会狂问基础,问的特别多特别细。而如果你的项目特别的高大上,涉及的东西又特别多的话,那面试官也会挖的特别深,会问你项目里涉及的各种问题。感觉应该就是确认项目是不是真的是你参与的,顺便挖掘下你的深度到底有多深。
一面(10分钟)
一面只有10分钟,开头就自我介绍下,介绍了一分钟把。然后面试官就让我说说我的一个项目。然后我就开始说啊,从项目开始的时候什么都不懂,到第一次上线崩掉之后,开始考虑分布式设计,然后引入负载均衡啊,然后还有图片数据库服务器分离啊,引入redis服务器啊,分布式session啊,然后还有针对预估的最大并发做了压力测试啊,然后给他画了个项目最终改造完成后的系统拓扑图。
全程都是我说,他一句话也没说,说了得有七八分钟吧。
然后我说完他也没针对这个项目问我啥问题,就问了几个其他的问题。
1、学java几年了,平时学java怎么学的啊,看过哪些书?
我说我没怎么看书,只看了think in
java的几个核心章节,平时都是喜欢看别人博客。
2、http状态码3xx 4xx 5xx分别是啥
重定向,客户端错误,服务器端错误
3、如果我们一个项目,理论上需要1.5G的内存就足够,但是项目上线后发现隔了几个星期,占用内存到了2.5G,这时候你会考虑是什么问题?怎么解决?
我回答会首先考虑内存泄漏,使用MemeryAnalyzer之类的工具分析检查哪里有泄漏,然后他又问用过MemeryAnalyzer吗?
我说没用过。。
然后一面就这么完了,我出来之后等面试的时候认识的小伙伴问我怎么还没开始面,我说我面完了(继续手动笑哭)
二面(30分钟)
一面完5分钟开始,这个面试官让我怀疑我是不是自带了逗逼属性,我一说话他就笑,可能我说话有时候是有点逗,当然也是因为觉得自己肯定过不了二面,所以特别放的开(再次笑哭),然后整个面试就很和谐,面试官也笑了全场,本来他刚开口的时候还是很严肃的,所以啊,面试千万别慌,面试官也想以后有个谈的来的同事嘛,对吧=。=
这轮面试我面完都觉得肯定过不了,总共问了那么几个问题我好几个没答上来,所以呢,我觉得能过还是因为前面项目聊的不错。
开始还是先说项目,然后又是一面那一套,但是这个就问的很细了,我说完之后就开始问很多细节的东西,比如分布式session怎么实现的,然后redis里面放了什么东西啊,核心逻辑怎么实现的啊,BLABLABLA,项目聊了20分钟,这时候说下一点感悟,就是聊的时候一定让把你解决问题已经学习的过程体现出来,这些可能是面试官希望看到的。包括遇到问题时你的思维方式等等,项目这东西就不多说了,因为每个人的项目不同,自己根据自己的项目准备好可以吸引到面试官的点就ok了。下面就是问的几个问题了。
因为大部分时间在聊项目,后来也没问几个问题。
1、hashmap的原理。
结合着源码blabla,然后包括1.6时Entry,1.8是Node
还有对key的hashcode1.6和1.8用的算法不一样啊之类的blabla,说了一通,什么fail-fast机制啊啥啥啥的。
2、哪些方法实现线程安全。
synchronized,reentrantlock,volatile,然后重点说了下volatile在某些情况下可以实现线程安全,然后就把面试官注意力往volatile上引,因为volatile这个专门看了一下,果然,面试官马上问了volatile。
3、volatile是实现了什么功能呢?
然后就把自己看得乱扯了一通,比如volatile修饰汇编时会在修饰字段前加LOCK字段啊,内存屏障啥啥啥的扯了一通,就是想让面试官觉得对某些方面了解还是蛮深的。
4、如果想实现一个线程安全的队列,可以怎么实现?
JUC包里的ArrayBlockingQueue
还有LinkedBlockingQueue啥的又结合源码说了一通。
5、说说http报文的header里面有什么?
WTF!一脸懵逼,没怎么看网络这部分,脑子一片空白,直接说记不清楚了。
6、给了一个类加载时先后顺序的问题,给了段代码,让你写出输出结果,就静态代码段啊构造函数之类的加载顺序。
这个我也是给跪了,我写对了结果,但是给他解释为什么的时候解释错了,把顺序记反了,还是自己没记清楚。。。
7、JVM的内存分区
五个分区,然后扯了扯垃圾回收算法,主动扯,然后就被打断了,就说不用说了。
8、数据库的事务管理级别,默认什么级别,会出现哪些问题
四个级别,默认我说是读已提交,但是其实MYSQL的默认应该是可重复读,这个我也是回来才发现的。然后就说了默认读已提交会出现不可重复读和幻读。
9、最后让写个SQL语句。
我当时是懵逼的,我直接给他说我平时写sql都是搜索引擎查着语法写,然后他说没事儿,又不让你全写对,你咋想的咋写就行了。然后大概SQL应该是个
select。。SUM()。from A left join B on A.id=B.id Where ...ORDER BY ...
然后我当时是真记不清了。。sql写的少,然后把left join on 写成了left join where 然后最后order by
也忘掉了。。
问完他让我前台等等结果,我以为挂定了,毕竟真的答的烂。结果没想到竟然给我过了。 所以还是。。。缘分啊。。。
三面(HR 30分钟)
hr面没啥好说的,***正确,表现出强烈的想来网易,想来杭州,并且表现我很希望稳定的在网易待着的意愿,聊呗。不过我这hr比较严肃,男hr,全程扑克脸,搞得我压力蛮大的,不过还是聊了半个小时,然后聊完下午三点,打车西湖坐个船,杭州之旅圆满。
阿里
一面(快俩小时)
我实在是没有勇气写阿里一面的面经,面了快俩小时,感觉自己被掏空,就大概说下,前面全问基础,就之前我给的那些知识点,基本上都问了一遍,就是操作系统,网络,语言,数据库,web框架等等每个大的部分都是先深后广,每个点就深到你答不出来为止,你答不出来就换个问题换个方向,再广度的问,然后找到一个点继续深问下去,反正我是完全被掏空了,完全不想回忆,问完之后还是问了项目,又聊了十几二十分钟项目。这部分面经已经没有意义了,就去看上面那些知识点吧,有些更深的问题,我听都没听过的,也就没记。
二面(40分钟)
二面面试官很nice,态度很好,然后还是先聊项目,二十多分钟,问了很多扩展性的问题,也问了很多细节,比如核心逻辑怎么实现啊,redis服务器如果挂掉怎么办,有没有考虑redis集群,redis集群的话数据分片怎么分,然后就是如果并发很高,几十万并发,可以做哪些优化,然后我答的不好,面试官还会给你说可以怎么怎么做。。感觉虽然是面试还是学到了不少。
问完项目,没有问基础,估计是看到了一面面试官写的面试评语了吧,然后就开始问算法,先来了个智力题,50个白球50个红球,两个盒子,怎么放让人随机在一个盒子里抽到红球概率最高。。。这个就是一个盒子放一个红球,另一个盒子放99个球。然后就问了下快排,口述了下快排的实现,时间复杂度,会不会退化,然后问快排的优化,怎么选基准,我就说随机化,防止退化。然后又问了一个n个数里取两个和为s的数,剑指offer上的题。问完之后就结束了,然后两天后收到通知说安排了部门交叉面。
三面(部分交叉面 30分钟)
这面我感觉挂的不明不白,不过想来可能是之前的面试评级不够?这面就聊了聊项目,然后主要就聊了聊人生,感觉怎么聊的跟我网易hr面时候聊的差不多,然后聊完就再也没有消息了。。。想来也是缘分不到(持续笑哭)。。。
总结
总的来说呢,感觉自己这次找工作太顺利,人品真是全用光了,然后一直又太懒,一直拖到现在才憋完面经。希望这点自认为是干货但是充满水分的面经可以给师弟师妹们或者是同届的战友们有点作用,也希望自己能攒一些人品,毕竟
I have a dream。。I need more
luck。。。最后,虽然肯定看不到,还是要感谢老司机师兄带我飞了一波,不然肯定也不会这么顺利。
by:一个迷信的毕设却要搞电机啥都不懂一脸生无可恋只求能顺利毕业的想当码农的渣硕