继百度阿里笔试跪掉,cvte一面跪掉,华为简历刷掉,腾讯一面跪掉后,
终于有了一次比较完整的笔试面试经历了。
写个面经,攒个RP,希望能给发offer
第一次,没有写好还请海涵。
我是西安这边的,首先说一下笔试吧。美团今年的笔试题量非常大,前面8道题,7个写程序的1个数学期望的。然后后面是几道不同岗位的选做题。
校招笔试现场人真不是一般的多。。。
中午去的考场比较早,然后出去打了会dota。
从7点到8.30, 写出来了5个程序。完事就回去等通知了。
过了两天打来个电话,然后说给我定下来了面试时间了,尼玛的早上8:30太早了有木有。结果还不能改。。
一大早就去了,预约的是8:30,到的时候好多面试官还没有睡起来。过了一会,才陆续到来,在那里待了快一早上,好多面试官都是穿着酒店的一次性拖鞋,话说这是程序员的通病么-_-。。。
等了一会,就开始一面了。
一面的GG大概有30岁左右,去了之后,做了下简单的自我介绍。
接下来就是问笔试题了。
笔试题是32分-_-,简直不忍直视啊。不过,美团1个半小时那么多题,确实有些太紧张了。
他拿出第一道题,一看。疑,你这第一道题写的有问题啊,还给你满分。
然后他就让我开始找。。找了一下没找到-_-囧。。。
然后他就开始提示了。。
一指一个指针,然后说了一句话,然后我一下就明白问题了。
完了他问,还有什么问题没有。
我看了看,他又给我一指,我立马就说出了问题。没有对除数为0的情况做检测。
这种感觉真棒。不给我指出来具体哪里出错的原因,只是给我指出来。我想,如果我能够进入美团的话,一定尽量找那个GG去当我的导师!
接着就开始问项目。
问我项目实现了什么功能,什么框架等等。。。
聊了一会,重点来了。让写一个两个链表寻找第一个公共结点的程序。
No Problem。 中间写的时候看见面试官吸了吸鼻子,我就顺口说了句感冒了?然后面试官说,嗯,刚来西安这边就下雨了。
我笑着说。都下了半个月了,多喝点水吧。
程序写完后,他又出了一个概率题。我擦,我概率论最差了。他可真会挑%>_<%。。。。。。
果然,题目出来了之后我完全就不会(好吧。原谅我。。。我也不想这样-_-)
接着我就给他说能不能给我换个题目。然后重点来了重点来了。
他说哎,我这呢,就给你过了。但是我告诉你啊,面试中让面试官换道题目是大忌。。。。你记好了,以后再不能这样了。
哎妈呀,简直太亲切了,有木有啊有木有。。。我赶紧的就道谢。。。
他又大概给我讲了一下,我还是没听懂-_-(为什么我概率论这么差~~~~(>_<)~~~~ )
面了大概有40分钟
完事就出去等通知了。。。
在房间外面跟其他西电通信的研究僧聊了一会,尼玛的全部都用华为保底,艹。。。。。简直不忍直视啊。
哎,苦逼的我现在还没有找到保底的。。。。而且华为尼玛的还刷学校-_-
二面出现了一点小差错,一面的GG给我推荐让我去面前端,然后把我分配到了一个前端的面试官那里。去了之后,是个好有喜的胖子。然后胖子问我会前端吗。
我不会额。我html css javascript都好差啊有木有。。。
胖子说OK,好,那我给你找个面试官去,,你是搞Java的对么,我恩恩。赶紧连忙道谢。。
接着他给我找到了面试官,我在外面又稍微等了一会,然后就被叫进房子里,开始二面了。
二面貌似是个更年轻的GG了。说不上多大岁数,感觉不到30。
整个过程中,只是让我不停的说,然后他就问,我哪里有说的不对的也没有说纠正提醒一下。。。
然后就开始揪着我的简历一个一个一个一个问题的问了。
1.什么是Sevlet
额,我没想到他上来就问JavaWeb的这种基础问题。然后是真的没答好。。。
就简单说了一下,是继承HttpServlet,然后线程不安全。然后问还有呢。我恩恩啊啊的。哎。都是眼泪啊。这么基础的东西也没研究。。。尼玛你咋不问个生命周期呢。。
然后丫就问线程哪里不安全了。我就说啊。这个有多个线程并发访问一个Servelet的话,假如对同一个实例变量同时做修改的话,就会出现线程安全问题。
然后丫就问。那解决方案呢?我说嗯,加那个sychronized。 然后又说了两种使用方式,一种是对方法,一种是对块。
接着又问,还有什么解决办法么?尼玛的,瞬间就想到了不用Servlet了,额,不过这个答案肯定是不正确的-_-
然后就突然想到了,可以不用实例变量,而使用局部变量。
然后还问,那你用那个sychronized过吗?我说,嗯。单例模式搞过。
然后写代码,还问我为什么内层嵌套还要有一个判断为空,然后我balabala又说了两句
OK!
然后又问我知道sychronized的原理不知道。我说。嗯就是加锁,对一个对象加锁。然后他问还有其他形式的加锁吗?
我说嗯,还可以用Lock,然后我又说这种方式我没有使用过。不知道两者的区别。
完了他又问我有没有使用过Concurrent包里的东西。我说额。没太使用过,仅仅是知道。
2.问项目中的一个多线程问题,我是如何保证线程安全的,我又说加sychronized同步。
然后又问到有没有遇到多线程死锁的时候。
然后我就说嗯,以前做过一个程序,往一个HashMap中,多线程的添加数据然后就会挂掉。
问我怎样知道挂掉的。然后我就说看cpu上去了,然后用Jconsole工具连接线程查看堆栈信息。
然后又问了HashMap HashTable ConcurrentMap的区别。然后我又balala。
3.问项目中HttpClient模拟浏览器的问题。
问get方式和post方式各自特点,以及优点。
我就说get和post的一些东西,然后问。post能不能替换掉get。我就语塞了。。。胡乱扯了一下略过了这个问题。
4.看到我项目中使用了Spring,然后让我介绍一下Spring。
Spring我都忘记具体是怎么回事了,就给他介绍了一下两个特性,
IOC和AOP。
IOC是依赖注入,就是在程序里面不new对象了,再配置文件里写好,让Spring帮我初始化对象
AOP就是面向切面编程。例如要计算一个方法的时间。
定义一个around切点,然后加载这个方法上。然后执行。
问我aop的原理是什么, 代理模式,Proxy
5.看到我用了数据库,然后问我有没有听过sql注入,让我说下其原理。
sql注入是一种常见的攻击方式,以mysql为例,
一般是以数据库的查询sql语言中的一些漏洞或者特性,来达到暴库的目的。
常见的有 and 1=1 ' 之类的。
然后问我怎样sql注入比较厉害,我回答字典比较丰富。
然后问我怎样防备,然后我说 匹配sql注入的一些关键字符,然后封锁IP。
6.给出了一个题目,有50个黑球,50个白球,然后两个盘子,
问怎样放才能让两个盘子取到白球的概率加起来最大。
想了半天也和面试官沟通了一会。然后得出了答案。
左边的盘子放1个白球,右边的盘子放50个黑球,49个白球
三面:
三面是一个看上去就好凶好凶的人,问了很多问题,自己感觉都没有答好。。。
最后和他又随便聊了聊,聊了下美团的盈利模式,以及现在主要的转型一些东西。
PS:美团offer下来了,三方已签 Yes!