8月最新的美团技术四面已拿offer:JVM、多线程、算法、设计模式


美团我是在拉勾网上投的简历,以前也投过一次,简历都没经过删选.
html

后来让一位大佬帮我改了一下简历,从新投另外一个部门,得到了面试机会.前端

话很少说,看核心重点问题吧!!!!java

美团技术一面20分钟

一、自我介绍mysql

说了不少遍了,很流畅捡重点介绍完。jquery

二、问我数据结构算法好很差git

挺好的(其实心仍是有点虚,不过最近刷了不少题也只能壮着胆子充胖子了)面试

三、找到单链表的三等分点,若是单链表是有环的呢算法

用快慢指针,一个走一步,一个走三步。若是有环,先判断环在哪,找最后一个节点,而后用以前的无环的作法sql

四、讲一下项目的架构数据库

我重点讲了MVC

五、说一下你熟悉的设计模式

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

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

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

一面挺匆忙的,我估计面试官刚开完会还没吃饭呢。他说让我等,可能再找一个同事面我,可

能就直接告诉我结果了。

从一面面试官的声音和口吻,我判断他必定是个部门老大,问的设计偏多,后面hr告诉我他就

是我要去的部门的老大。哈哈。

美团技术二面60分钟,详细问答

面完一面正准备出去打羽毛球,北京的电话又来了。(注定这周五参加不了球队活动了!)

二面:跟一面比起来,二面面试官的声音听起来就像是搞技术开发的,果不其然,一个小时的

纯技术电话面试!面的特别全面!

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

其实我挺不想被问到Spring的细节的,框架这些我都没有复习不太记得了。因此我对面试官说

Spring里面的一些比较重要的机制我理解的还不错,而后我用一个实际的例子把我对IOC、

AOP理解讲了一下,他听了说对,理解的不错(可贵遇到一个边面试边能给反馈的面试官,好开心)

Spring MVC其实我用过,我就对面试官讲了个人项目中用到的Servlet,jsp和javabean实现

的MVC,以及MVC各个模块职责以及每一个模块是怎么联系到一块儿的,最后我补充了一句我想

SpringMVC的思想其实跟这个是同样的(他说对的,嘿嘿有反馈真好)

二、多线程:怎么实现线程安全,各个实现方法有什么区别,volatile关键字的使用,可重入锁

的理解,Synchronized是否是可重入锁

这里我就主要讲了Synchronized关键字,还有并发包下面的一些锁,以及各自的优缺点和区别。

volatile关键字我主要从可见性、原子性和禁止JVM指令重排序三个方面讲的,再讲了一下我

在多线程的单例模式double-check中用到volatile关键字禁止JVM指令重排优化。

三、集合: HashMap底层实现,怎么实现HashMap线程安全

我讲了一下HashMap底层是数组加单链表实现,Node内部类,add的过程,Hash冲突解决

办法,扩容,三种集合视图。HashMap线程安全的实现方式主要讲了HashTable、

ConcurrentHashMap以及Collections中的静态方法SynchronizedMap能够对HashMap进

行封装。

以及这三种方式的区别,效率表现。

四、JVM内存管理,GC算法,HotSpot里面的垃圾回收器、类加载

JVM内存主要分为五个区,哪些是线程共享的,哪些是线程独享的,每一个区存放什么。

GC方面:怎么判断哪些对象须要被GC,GC的方法,Minor GC与Full GC。HotSpot GC算法

以及7种垃圾回收期,主要讲了CMS和G1收集器。

类加载:类加载的过程,Bootstrap classloader-ExtClassloader-AppClassloader,父类委

托机制。

五、进程和线程的区别

从调度、并发性、拥有的资源和系统开销四个方面回答的。

六、HTTP有没有状态,我说无状态,怎么解决HTTP无状态 怎么解决HTTP无状态其实就是怎

么进行会话跟踪,有四种方法:URL重写、隐藏表单域、Cookie、Session。

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

Java IO实现的是同步阻塞,它是怎么实现同步阻塞的。我拿了read()方法举例来说的。

NIO实现的是同步非阻塞,我详细讲了一下Selector中的select()方法轮询说明它是如何实现多路复用IO的。

而后对比了一下他们的效率。面试官可能看我对这一块比较了解,又继续问我Java中有没有实现异步IO,我感受好像没有,但面试官说有,让我想一想,其实这里我并不清楚啦,因此我就对面试官讲了一下我对Unix中异步IO模型的理解,而后说至于Java里面有没有我真的不太清楚。(他竟然笑了!说你理解是对的,Java里面有没有不重要!哈哈)

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

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

九、让我设计一个线程池

由于我简历中有写到我对多线程、并发这一块理解比较好。因此他老问这方面的题。这个问题由于我以前看过ThreadPoolExecutor的源代码,因此我就仿照那个类的设计思路来想的,详细讲了一下核心池、建立线程能够用工厂方法模式来进行设计、线程池状态、阻塞队列、拒绝策略这几个方面。设计的还算比较周全。

十、讲几个设计模式,哪些地方用到了,为何要用

单例模式,jdk中的getRuntime();

工厂方法模式:ThreadPoolExcutor用到ThreadFactory;

观察者模式:java.util包下面的Observable和Observer。

最后主要讲了一下工厂方法模式的使用场景。

十一、Mysql优化、索引的实现

我从数据库设计优化和查询优化两方面讲的。

索引B+树实现,InnoDB和MyISAM主键索引的实现区别,一个汇集一个非汇集。

十二、事务的隔离级别

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

1三、有没有用过Hibernate、mybatis、git

这个简单讲一下就好,分别是干什么的

1四、Linux

我说这个本科学过,可是好久没用,命令忘光了。他说没事,考你几个简单的:cd、ls、

dir(真的是简单的)

1五、算法题

从10万个数中找最小的10个,时间复杂度分析(最大堆,考虑内存)

从一个有正有负数组中找连续子数组的最大和,时间复杂度分析(动态规划)

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

终于到我提问环节了

一、大家是什么部门(他说是核心部门,大数据研发)

二、我对高并发和负载均衡挺有兴趣的,可是我平时在学校也没有这个环境让我在这方面有所体验,那你建议我目前能够怎么学呢(他说这确实是不太好学,只能看些理论和别人的博客,之后工做中才能慢慢学)

三、中间件具体是作什么的,是解决高并发和负载均衡吗(他说差很少是的,而后他说咱们这个部门不是中间件,是大数据部门啊,我说恩我知道)

最后没啥问题了,他让我保持电话畅通。

这一面面完,口干舌燥,我一度怀疑他可能不知道我是在应聘实习生的岗位。有太多要总结的了,放在总结的地方一块儿讲吧。

美团技术三面25分钟

面试官说是他是另一个部门的,须要进行交叉面试。

一、MySql优化

二、说下项目作了些什么,架构之类的

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

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

这一面挺简单的,只是增长以前面试没有过的在线写代码环节,collabedit后来我才了解,像facebook一些互联网公司远程面试都会用这个在线编辑器写代码,就是文本文档写,没有提示,不能编译运行,跟白板写同样。平时练练手就好。

美团技术HR四面30分钟

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

一、自我介绍,都四面了还自我介绍?!我还觉得是单纯的hr面,因此介绍的都是个人性格和生活方面的,结果并非。

二、问项目,问的特别特别细,技术细节,还有遇到什么问题,怎么解决的,作项目有没有人带,怎么跟别人沟通的。

三、数据库优化,若是数据库一个表特别大怎么办 数据库优化我就讲了以前讲过不少遍的点,他问一个表特别大怎么办:大表分小表,怎么实现:使用分区表

四、肯定入职时间 这一面确实让我感到有压迫感,项目是本科作的,挺久了,一些技术细节上

也没太总结,因此问细了我只能连想带编。

上面的这些面试题都整理成了PDF文档,但愿能帮助到你面试前的复习并找到一个好的工做,相对来讲也节省了你在网上搜索资料的时间来学习!!!

Java核心面试宝典

  1. JVM

  2. JAVA集合

  3. JAVA多线程并发

  4. JAVA基础

  5. Spring原理

  6. 微服务

  7. Hetty与PC

  8. 网络

  9. 日志

  10. Zookeeper

  11. Kafks

  12. Rabbi tMQ

  13. Hbase

  14. MongoDB

  15. Cassandra

  16. 设计模式

  17. 负载均衡

  18. 数据库

  19. 一致性算法

  20. JAVA算法

  21. 数据结构

  22. 加密算法

  23. 分布式缓存

  24. Hadoop

  25. Spark

  26. Storm

  27. YARIN

  28. 机器学习

  29. 云计算

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年


求来的大厂面试场景(为了学习提高能够没脸没皮,啊哈哈哈)

我针对这些大厂的面经场景也找了不少题刷,对自身的提高也是很是大(还特地要了份面试答案)

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

美团部分面经

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

好将来面试场景

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年


分享一些我我的的学习文档,有须要的朋友自行选择获取:

一、面试文档专题整理

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我本身是刷了很多面试题的,因此在面试过程当中才可以作到心中有数,基本上会清楚面试过程当中会问到哪些知识点,高频题又有哪些,因此刷题是面试前期准备过程当中很是重要的一点。

根据自身面试经历整理以及不断收集的(珍藏版)

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

相关的电子书、底层源码

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

阿里巴巴必备学习知识点

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年


最后

不少人感叹“学而无用”,实际上之因此产生无用论,是由于本身想要的与本身所学的匹配不上,这也就意味着本身学得远远不够。不管是学习仍是工做,都应该有主动性,因此若是拥有大厂梦,那么就要本身努力去实现它。

以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!

资料获取方式:转发和评论这篇文章,而后关注小编,加VX:MXW5308 便可打包带走全部资料~

相关文章
相关标签/搜索