乐趣区

关于面试:一次美团面经分享

本文作者:只爱羽毛球的程序媛,链接地址:https://blog.csdn.net/csuliya…

美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,起初让学姐帮我改了一下简历,从新投另一个部门,取得了面试机会。10 月 23 日中午 HR 打电话过去预约了下午 4 点半面试,说会在线写代码,让我筹备好网络环境。后果 5 点半还没打电话过去,被放鸽子。与 hr 从新沟通过后,确定下周一下午再面,可是跟 hr 沟通预约这一套貌似在美团并没有什么用。

美团技术一面 20 分钟

晚 7 点,因为想到下周一才面试,我刚筹备进来打个羽毛球,北京的电话就来了。面试官各种道歉,说散会迁延了。

1、自我介绍

说了很多遍了,很晦涩捡重点介绍完。

2、问我数据结构算法好不好

挺好的(其实心还是有点虚,不过最近刷了很多题也只能壮着胆子充瘦子了)

3、找到单链表的三等分点,如果单链表是有环的呢

用快慢指针,一个走一步,一个走三步。如果有环,先判断环在哪,找最初一个节点,而后用之前的无环的做法

4、讲一下我的项目的架构

我重点讲了 MVC

5、说一下你相熟的设计模式

我重点讲了单例、工厂办法、代理

5、有没有配置过服务器啥啥啥

这个我真不知道,都没听过呢,只能诚恳说没有,毕竟都没法扯。

一面挺匆忙的,我预计面试官刚开完会还没吃饭呢。他说让我等,可能再找一个共事面我,可能就间接通知我后果了。从一面面试官的声音和口气,我判断他肯定是个部门老大,问的设计偏多,前面 hr 通知我他就是我要去的部门的老大。哈哈。

美团技术二面 60 分钟,具体问答

面完一面正筹备进来打羽毛球,北京的电话又来了。(注定这周五加入不了球队流动了!)二面:跟一面比起来,二面面试官的声音听起来就像是搞技术开发的,果不其然,一个小时的纯技术电话面试!面的特地全面!

1、Spring:有没有用过 Spring,Spring IOC、AOP 机制与实现,Spring MVC

其实我挺不想被问到 Spring 的细节的,框架这些我都没有温习不太记得了。所以我对面试官说 Spring 外面的一些比拟重要的机制我了解的还不错,而后我用一个理论的例子把我对 IOC、AOP 了解讲了一下,他听了说对,了解的不错(难得遇到一个边面试边能给反馈的面试官,好开心)

Spring MVC 其实我用过,我就对面试官讲了我的我的项目中用到的 Servlet,jsp 和 javabean 实现的 MVC,以及 MVC 各个模块职责以及每个模块是怎么分割到一起的,最初我补充了一句我想 SpringMVC 的思维其实跟这个是一样的(他说对的,嘿嘿有反馈真好)

2、多线程:怎么实现线程平安,各个实现办法有什么区别,volatile 关键字的应用,可重入锁的了解,Synchronized 是不是可重入锁

这里我就次要讲了 Synchronized 关键字,还有并发包上面的一些锁,以及各自的优缺点和区别。volatile 关键字我次要从可见性、原子性和禁止 JVM 指令重排序三个方面讲的,再讲了一下我在多线程的单例模式 double-check 中用到 volatile 关键字禁止 JVM 指令重排优化。

3、汇合:HashMap 底层实现,怎么实现 HashMap 线程平安

我讲了一下 HashMap 底层是数组加单链表实现,Node 外部类,add 的过程,Hash 抵触解决办法,扩容,三种汇合视图。HashMap 线程平安的实现形式次要讲了 HashTable、ConcurrentHashMap 以及 Collections 中的静态方法 SynchronizedMap 能够对 HashMap 进行封装。以及这三种形式的区别,效率体现。

4、JVM 内存治理,GC 算法,HotSpot 外面的垃圾回收器、类加载

JVM 内存次要分为五个区,哪些是线程共享的,哪些是线程独享的,每个区寄存什么。GC 方面:怎么判断哪些对象须要被 GC,GC 的办法,Minor GC 与 Full GC。HotSpot GC 算法以及 7 种垃圾回收期,次要讲了 CMS 和 G1 收集器。类加载:类加载的过程,Bootstrap classloader-ExtClassloader-AppClassloader,父类委托机制。

5、过程和线程的区别

从调度、并发性、领有的资源和零碎开销四个方面答复的。

6、HTTP 有没有状态,我说无状态,怎么解决 HTTP 无状态 怎么解决 HTTP 无状态其实就是怎么进行会话跟踪,有四种办法:URL 重写、暗藏表单域、Cookie、Session。

7、Java IO,NIO,Java 中有没有实现异步 IO

Java IO 实现的是同步阻塞,它是怎么实现同步阻塞的。我拿了 read()办法举例来讲的。NIO 实现的是同步非阻塞,我具体讲了一下 Selector 中的 select()办法轮询阐明它是如何实现多路复用 IO 的。而后比照了一下他们的效率。面试官可能看我对这一块比拟理解,又持续问我 Java 中有没有实现异步 IO,我感觉如同没有,但面试官说有,让我想想,其实这里我并不分明啦,所以我就对面试官讲了一下我对 Unix 中异步 IO 模型的了解,而后说至于 Java 外面有没有我真的不太分明。(他竟然笑了!说你了解是对的,Java 外面有没有不重要!哈哈)

8、前端会不会,Ajax 是什么,Ajax 实现原理

前端我只是会用一些 js 而已,用过 jquery 框架,问我 Ajax 全称是啥,我猜是异步的 js 和 xml。Ajax 实现原理其实我也不懂,我就只简略讲了一下它通过 XMLHttpRequest 对象进行异步查问,Ajax 引擎在客户端运行,缩小了服务器工作量。

9、让我设计一个线程池

因为我简历中有写到我对多线程、并发这一块了解比拟好。所以他老问这方面的题。这个问题因为我之前看过 ThreadPoolExecutor 的源代码,所以我就仿照那个类的设计思路来想的,具体讲了一下外围池、创立线程能够用工厂办法模式来进行设计、线程池状态、阻塞队列、回绝策略这几个方面。设计的还算比拟周全。

10、讲几个设计模式,哪些地方用到了,为什么要用

单例模式,jdk 中的 getRuntime();工厂办法模式,ThreadPoolExcutor 用到 ThreadFactory;观察者模式:java.util 包上面的 Observable 和 Observer。最初次要讲了一下工厂办法模式的应用场景。

11、Mysql 优化、索引的实现

我从数据库设计优化和查问优化两方面讲的。索引 B + 树实现,InnoDB 和 MyISAM 主键索引的实现区别,一个汇集一个非汇集。

12、事务的隔离级别

四种隔离级别,可能会呈现哪些异样,mysql 中默认级别。

13、有没有用过 Hibernate、mybatis、git

这个简略讲一下就好,别离是干什么的

14、Linux

我说这个本迷信过,然而很久没用,命令忘光了。他说没事,考你几个简略的:cd、ls、dir(真的是简略的)

15、算法题

1、从 10 万个数中找最小的 10 个,工夫复杂度剖析(最大堆,思考内存)

2、从一个有正有负数组中找间断子数组的最大和,工夫复杂度剖析(动静布局)

3、满二叉树第 i 层有多少个节点,n 层的满二叉树共有多少个节点

终于到我发问环节了

1、你们是什么部门(他说是外围部门,大数据研发)

2、我对高并发和负载平衡挺有趣味的,然而我平时在学校也没有这个环境让我在这方面有所体验,那你倡议我目前能够怎么学呢(他说这的确是不太好学,只能看些实践和他人的博客,当前工作中能力缓缓学)

3、中间件具体是做什么的,是解决高并发和负载平衡吗(他说差不多是的,而后他说咱们这个部门不是中间件,是大数据部门啊,我说恩我晓得)

最初没啥问题了,他让我放弃电话畅通。

这一面面完,口干舌燥,我一度狐疑他可能不晓得我是在应聘实习生的岗位。有太多要总结的了,放在总结的中央一起讲吧。

美团技术三面 25 分钟

面试官说是他是另外一个部门的,须要进行穿插面试。

1、MySql 优化

2、说下我的项目做了些什么,架构之类的

3、在 collabedit 上在线写代码,题目很简略是编程之美上的原题,一个有序的整数数组,输入两个数,使它们的和为某个给定的值。之前做过很快写好,而后给他讲思路。他持续问如果数组无序怎么办,先排序。

4、两个文件,每个文件中都有若干个 url,找出两个文件中雷同的 url(用 HashMap)

这一面挺简略的,只是减少之前面试没有过的在线写代码环节,collabedit 起初我才理解,像 facebook 一些互联网公司近程面试都会用这个在线编辑器写代码,就是文本文档写,没有提醒,不能编译运行,跟白板写一样。平时练练手就好。

美团技术 HR 四面 30 分钟

三面面试官说他那就是终面,说我过了等 hr 分割我。万万没想到半小时后的 hr 面竟然也是技术。

1、自我介绍

都四面了还自我介绍?!我还认为是单纯的 hr 面,所以介绍的都是我的性情和生存方面的,后果并不是。

2、问我的项目

问的特地特地细,技术细节,还有遇到什么问题,怎么解决的,做我的项目有没有人带,怎么跟他人沟通的。

3、数据库优化

如果数据库一个表特地大怎么办 数据库优化我就讲了之前讲过很多遍的点,他问一个表特地大怎么办:大表分小表,怎么实现:应用分区表

4、问研究生的科研题目

为什么选这个题,看了一些什么论文(细到问我那些论文是发表在什么期刊上的,作者是哪所学校的),为什么要选这个算法,怎么优化的,试验后果怎么跟他人作比照的,为什么比他人的算法好(一个个问题一直砸过来,我猜我说的那些专业名词他应该不太懂,只是判断一下是不是我做的而已。。)

5、确定实习工夫

这一面的确让我感到有压迫感,我的项目是本科做的,挺久了,一些技术细节上也没太总结,所以问细了我只能连想带编,嘿嘿。科研方面倒还好,上个学期都在弄这个,一些算法的实现和改良、比照都还记得比较清楚,答复的挺晦涩的,可能这真的就是技术型的 hr 面吧。

逆锋起笔 是一个专一于程序员圈子的技术平台,你能够播种 最新技术动静 最新内测资格 BAT 等大厂的教训 精品学习材料 职业路线 副业思维 ,微信搜寻 逆锋起笔 关注!

退出移动版