最近同学帮我内推了美团,本来想投的是Java后台研发,阴差阳错之间帮我推到了一个AI语言部门,昨天面试了一下,问的比较浅,但是还是有许多问题回答的不好,简单记录了一下。现在还不知道结果,最蛋疼的是同学无意间帮你问了一下结果,面试官说还行,结果最后被据了。
一面
一面的面试官好像是搞Java的,比较严肃,但是人还是很好的。
先看了看简历,然后就问我一个项目,让我叙述了一下项目过程。然后面试官就开始列举了几个问题,让我回答我当初怎么想的(一脸懵逼),实话实说,当初写代码的时候根本就没考虑过这个问题好吗,学生写代码,都是奔着实现功能写的,根本不考虑性能,确实很不妥,这也就是我想着早点去公司磨砺一下的原因。然后我就大概随便说了一下,我自己都不知到我当初怎么说的。然后我就提了一下HTTP协议,WebSocket协议,写了一下报头,写的时候有点紧张还差点忘了。
然后我又提了一下项目中用的XML,面试官又开始怼,为什么用到了XML,我就说了一下用XML封装了一下信息,因为有目的地,时间等好几个因素。面试官又问为什么不用JSON(一脸懵逼),我也想知道当初为什么用JSON,我想到现在也不知道,我都怀疑我当初知道JSON吗。然后我又提了一下第三个项目中用到了JSON,面试官又说那你说一说JSON和XML的优缺点吧(一脸懵逼),我只记得以前好像看过JSON和XML的区别,记不太清,随便说了几点,面试官补充了一下。
然后面试官又问如果用户使用过程中浏览器死机怎么办(一脸懵逼),我不信有学生写学校的大作业还会考虑用户电脑死机的问题。我也不知道怎么说,然后就提到了我当初的一个保存用户Cookie和SessioID的功能来避免这个问题,然后面试官又问我Session和Cookie的区别,这个比较熟啊,说了一下。面试官又问知道SessionID变化的情况吗,在IE浏览器和Chrome浏览器中#(@$4&^*!)…我到现在都不知道他问了些什么。我一想这不对啊,我写的是后台,这东西我完全不懂啊。于是说这些东西不太懂,我比较了解JVM。
面试官然后好像说没事,看了看简历,简历上写了个操作系统,于是就问了问段式和页式内存管理,我当时应该是45度仰望天空,想了几秒没说出个所以然了,面试官又说没事可能时间长了记不太清了,又问我知道LRU吗,这东西当然知道了,页面置换算法,然后忽然发现这个和OPT分不清了,一个是往后面搜,一个往前面搜,然后不知怎么的,反正最后我也没说。
面试官开始问我数据库,我本来以为会问到存储引擎,结果就写了一个简单的连接语句,我提了一下内连接,面试官又问我内外连接的不同,解释了一下之后。面试官又说聊聊Java的垃圾回收吧,然后我就开始从内存布局说,说到分代收集。中间手写了一个循环引用的问题。然后又开始问G1收集器,我又说了几点,面试官补充了一下。然后结合开始的项目中,问了一个Full GC优化的问题,我就说了一下老年代大小设置大一点,面试官补充了一下。然后又问了线程池了解吗,问了我几个参数,我刚想解释,面试官问线程数大于corePoolSize,小于maxPoolSize,新的任务来临,怎么搞,我开始的时候说的还挺对,任务队列满了之后加线程,最后突然改成无论任务队列满不满,都会加线程,尴尬啊。。。 面试官似笑非笑,问我有什么方法可以让50个线程执行完毕后再执行主线程,答CountDownLatch,面试官问还有没有别的方法,答join(),然后面试官就说时间差不多了,问我有没有什么想问的,我就问了一下Java在美团主要用于哪些方面。
我感觉还能再战啊。JVM,Spring,类加载,多线程,数据结构,剑指offer,并发包源码什么都没问到,我怕面的是一个假的Java开发。
二面
等了估计有二十分钟,二面面试官就来了,感觉人很好,没什么架子。
先自我介绍,让我别紧张。然后问我学过什么语言,我真想说学过汉语和英语。提了一下喜欢Java和C,不喜欢C++。
问:“为什么不喜欢c++” 答:“感觉c++不纯粹,c++就是想把所有事情都做了,然后就不断往里面加新功能” 问:“那Java也差不多啊,Java模板什么的也都有啊”。 答:我都不知道怎么答(我都不知Java中的模板是什么,我感觉是泛型,是泛型的话我还能扯一下泛型的实现,不是就尬了,于是没说话)。
面试官又问知道使用的框架的原理吗,我就说了一下Spring的IOC初始化过程,Bean的生命周期,AOP忘记了好像没提。然后面试官又问我知道LRU,靠,这问题上个面试官都问过,我感觉这次面试要凉了。
我就说知道,大致举了个例子,然后面试官又说你这个不是FIFO吗,我又说LRU和OPT记不太清了,面试官就提示了一下最近最少,然后我就说感觉可以用链表实现。面试官说用Java实现链表容易吗,我问是要手写吗,面试官就说这样,你先想着,我先去面试一下别人。
面试官一走,我它么就全想起来了。写了大概五分钟,然后就发呆了十分钟。面试官来了之后简单讲了一下思路,说了一下代码。整个过程很流畅。面试官继续看简历,看了半天好像也没看出来什么可问的,(面试官好像不是搞Java的),最后问了一下的我的博客在什么上面搭的,又问了一下我的邮箱(cat@shiwenhao.gq)用的是哪个国家的后缀,我简单说了一下,面试官问我有什么想问的,我问了一下如果我可以来实习,我能学到什么东西。面试官就开始扯,我现在已经忘了他说过什么了。最后,我问了一个贼sb的问题,我这个结果怎么样,No Zuo No Die。
总结
面试比较水,那个项目上扯的太多了,问一个不懂,问一个不懂。
面试的时候尽量去引导面试官,不是会死的很惨。
到今天,hr还没有打电话,估计是凉了。生死由命,富贵在天。塞翁失马,焉知祸福呢。。。
P.S.: 2017.3.8日,美团hr打来电话。春招就先这样吧,只面了一个公司。