8号的美团内推现场面(二面挂)
一面:
编程题实现:输入例如{(1,2),(1,3),(1,4),(2,2),(2,2)} 输出 {(1,3),(2,1)}
编程题实现:1!+2!+。。。+n!
tcp三次握手的详细创建过程( 从两军问题开始说的)
session和cookie的区别(单机,分布式分别提了一下,追问分布式Session解决方案说了3种实现方式和优缺点)
HTTP状态码从100-500(说了说常用的,和能记住的不常用的)
操作系统内存碎片(操作系统一点没看)
如何检测一个链表中有回环(我说开俩指针一个走两步 一个走一步,发生指针碰撞就有回环不知道对不对,这种算法题一点没看)
现场写sql语句(没写出来。。。。)
进程线程的区别(详细地答了答)
Linux Shell写过吗(没有啊)
还有一个操作系统的题目好像是页面置换的(操作系统一点没看)
如何解决一个java程序cpu占用率过高,从如何定位到如何解决(讲了一下我项目的调优,又说了下Linux应该怎么做)
说说volitile关键字,你知道内存屏障和重排序?说说你了解的最深的,两句话说完(时间紧迫直接答:volitile读写内存屏障 volitile VS UNSAFE.putOrderdObject()(putOrderdObject使用的storestore屏障比直接volitile写插入的storeload屏障的性能要好很多,低延迟代码非常有用,用来优化不必要的volitile操作))
面试官:java学的不错,操作系统差点,网络不错,数据库差到令人无法容忍,编程题写得马虎丢三落四,回去抓紧时间学数据库(好的好的,数据库讲真真的没看过)。
二面:
检测死锁,避免死锁(我按java答的,讲了讲jstack查看线程dump,他摇头说不对,估计问的是银行家算法)
b+树 红黑树 为什么TreeSet使用红黑树而一些数据库索引使用b树和b+树
算法题:场景题假设现在美团有个业务 每天有N个流 我要从N个流里面随机取1000个流,保证绝对公平,但是N是个不确定的数字你不能直接用,每次只能取1个流,无额外辅助空间。
我:??? N不能用? 那就先统计下每天有多少个N 大致也得有个大约的数吧
面试官:你说的有道理,那这样吧 现在没这个场景了,就有N个数,但是N不能直接用因为你不知道N是多少,从N中随机取1000个,每次只能取1个保证绝对公平绝对随机怎么取
我:。。。不知道
面试官:你再想想
我:说了数个方案
面试官统一回答:你这个做不到绝对公平绝对随机
这一道题就在这墨迹了快半个小时,不知道也不行,然后一点提示没有,一直在发呆,顺便偷听周围人面试的问题。
我:实在不清楚,问一下这个题应该怎么解 面试官:那下个题吧
算法题:实现大数相乘(压根不知道啥是大数相乘,给我解释了一下,我说那就用string吧,说了说思路,他说有没有简单点的别的方法,想了想说没有了,继续说再想想,无奈只能又发了10分钟呆,然后也没说简单的方法到底是啥就下个题了)
说说你对操作系统磁盘的了解(完全不了解好吧,继续发呆)
未来有什么学习规划之类的(开始聊家常了,我也就知道面试结果了)
最后还有什么想问我的?
我:我投的是java后台开发吧,为什么二面一个java问题没有?也不问项目也不问实习?
面试官:你作为一个科班出身的硕士,理论和算法才是重要的,语言这东西来了美团现学就可以。
我:。。。(好,我鼓掌)
面试官:你了解go语言么?
我:golang么,不太了解,但是语言这东西可以现学。我没什么问题了,耽误您时间了谢谢您。
一面的面试官是真的不错,也算是我这趟唯一的收获,他为我指明了后续需要加强学习的部分,并划分了优先级,编程题也是很认真的在看,分号都没拉下,不会的题会给你提示思路引导你得出答案。
二面无语,周围的面试者和面试官都在聊项目,问基础,就我这里在那坐着盯着白纸,人生真是寂寞如雪。旁边的好像基础架构部的,在聊java一些源码,zk,paxos,zab啥的,真想立刻加入讨论在一边听得血妈急。然后算法题不会最后也没告诉我答案,也没什么提示应该往哪方面想,面了一个小时算法+操作系统。
哦,部门是随机分配的,我当时忘了选了,好像是金融吧,这部门反正两轮面试下来感觉你不太需要会什么语言,只要408考的那几门都会了,尤其是操作系统 再看看数据库写写sql,看看面试常用算法,差不多就稳进了。想去美团语言不太会但是基本功扎实的秋招的时候可以关注下。
讲道理是该滚去看408那几门和数据库了,是真的菜。令人发指。上次看操作系统的时间应该是2012年(考研没考操作系统),5年后的今天终于为时光流逝的这5年买单了。
之前看了不少美团的面经,翻来覆去怎么都感觉面了假的面试