(美团 - 一面)2020暑期实习后端面经
本人是第一批参加美团笔试的,题目通过率惨不忍睹,只有一二题写出了,然后感觉凉凉。在上周三也就是3月18日收到了面试邀约,本来说的是电话面但是过了十分钟后又给我说改成了视频面。面试整体感觉发挥还不错,基本上问题都答上来了,算法题目也写出来了,下面是干货:
1.自我介绍,讲了大概有5分钟左右
2.Linux怎么查看系统进程的使用情况(本人接触过一点linux,就说了top指令,还说了一下top指令里面相关的参数)
3.怎么利用top指令查看系统的负载情况(我一直回答的是内存,面试官一直提醒我是负载,难道内存不算是负载嘛,黑人问号脸)
4.进程和线程的区别(进程:系统进行资源调度和分配的基本单位,进程间独享内存,一个系统至少一个进程;线程:cpu进行资源调度和分配的基本单位,线程间共享进程的内存,一个进程至少一个线程)
5.死锁产生的条件(1.互斥性;2.占有并等待;3.非抢占;4.循环等待)
6.能不能用java代码模拟一下线程死锁的情况(简单)
7.get和post的区别(get会将请求参数添加到url后面,安全性低,并且受到url长度的限制,一般是用来获取资源的;post不会将参数跟在url后面,安全性高,参数长度不受url限制,一般是用来更新资源的)
8.http和服务器交互的几种方式(只回答了get和post,其余的当时没有想到,其实还有put,delete,这个没回答上来不应该)
9.说说常见的状态码和原因(200,500,404,301,302,403,503,502。之前觉得回答几个就够了,然后她一直在问还有嘛,实在是想不出来了)
10.线程的几种状态(创建,运行,等待,阻塞,循环等待,终止,其中运行又分为了就绪和运行中)
11.能不能结合之前写的死锁代码具体讲一讲线程状态是怎么变化的
12.wait和sleep的区别(wait是object类的,它会释放锁,它只能被notify()或者notifyAll()唤醒;sleep是thread类的,它不会释放锁,sleep时间到了会自动恢复,之后面试官还在问还有吗,又是问号脸,真的想反问一句,还有吗?)
13.synchonized的底层实现(说了一下monitor指令)
14.数据库主键一般都是使用自增id,能不能换成用户自定义不重复的key去作为主键呢,为什么(第一反应肯定是不行,我当时只回答了区分度,后来被引导到b+树上,后来明白了这是在问b+树叶子节点的知识,因为如果使用了自定义的key就无法保证叶子节点的顺序性了)
15.聊一聊b+树(讲了一下b+树的特点以及和b-树对比了一下)
16.数据库怎么并发控制事务(MVCC,正好面试之前看过这个,很轻松的就回答出来了)
17.事物的隔离级别
手撕代码
1.反转链表(简单)
2.找出数组中连续子序列之和最大的子序列数组,并输出起止位置索引(第一反应贪心,但是想了一会可能是哪里想错了,一直卡在那里,面试官就问我想的怎么样了,我当时就想着先写出以一个来,就直接说想好了,正准备写的时候面试官让我直讲将思路,我就直接说暴力法,之后又问还有更好的方法嘛,我就说暂时没想到了,之后就结束了)
整个过程持续了一个多小时,感觉不错,面试官人挺好的,期间她女儿还跑来找她,女儿真的好可爱,许愿有二面
最后欢迎关注我的公众号:互联网校招面经。每天一篇高质量互联网校招面经分享!每月定期总结归纳!还有电子书福利赠送!