一面(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,全程扑克脸,搞得我压力蛮大的,不过还是聊了半个小时,然后聊完下午三点,打车西湖坐个船,杭州之旅圆满。
编程语言基础(C++、Java) + 算法题(中等难度) + 数据结构 (树、链表为主)+ 计算机网络(TCP/IP相关) + 操作系统(进程和线程、内存调度)+ 项目经历
首先是电话和HR沟通。之后是电话和整个团队沟通。再之后还需要当面群面。
主要还是围绕自己过去的工作进行介绍。会针对你的工作提一些问题(至少在我这方面看来,宇宙第一基因企业这个方向的面试官水平非常一般)。我曾经问过,该职位今后的主要方向是什么,负责人的回答是:我们目前有没有方向。
如上,面试官水平一般,问题一般。印象只有个别面试官的问题有水平,并且对专业上认识深刻。总体看来,宇宙第一基因企业被政府惯坏了,虽然做出成绩和贡献,但是更多的是靠人海战术来堆积,胎死腹中的项目非常多。如果想加入宇宙第一基因企业,至少在面试上要深入了解对方,如果遇到有水平的、核心业务的职位,还是可以考虑的。否则,非常不推荐管理、经营和理念上存在不少问题的宇宙第一。
当时在网上投递了简历后都快忘记了。突然有一天公司的HR给我打电话说可不可以来面试。当时因为我一直在外地工作,所有就说是否可以先初步和业务部门主管进行一次电话沟通,互相了解下各自的岗位匹配度,整个过程还是很愉快的。约过了一周的时间,HR打电话给我说业务部门对我还是比较满意的,邀请参加面试。二面过程中双发聊的都挺投机的,因此面试后约1周左右就发offer给我了。入职后了解到,本来作为外企还有需要做一轮英语面试的,但是当时可能觉得我确实挺适合的,就完全忽略了英语能力了。
面试官问的面试题: 当时在网上投递了简历后都快忘记了。突然有一天公司的HR给我打电话说可不可以来面试。当时因为我一直在外地工作,所有就说是否可以先初步和业务部门主管进行一次电话沟通,互相了解下各自的岗位匹配度,整个过程还是很愉快的。约过了一周的时间,HR打电话给我说业务部门对我还是比较满意的,邀请参加面试。二面过程中双发聊的都挺投机的,因此面试后约1周左右就发offer给我了。入职后了解到,本来作为外企还有需要做一轮英语面试的,但是当时可能觉得我确实挺适合的,就完全忽略了英语能力了。