前言

经历了 10 月的疫情挣扎与 11 月失业的煎熬,终于来到了春末的 12 月,内心的压力也稍稍的松懈了一些,终于可以放心找个工作了,可是随着的等待面试的机会的越来越少,这份焦虑反而越来越大,也偶尔会想,是不是应该换一条出路。

当然,我还是想在坚持着试一试!!!

终于,我等到了一份美团的面试通知,满怀忐忑的我,经过了两天的准备,顺利约上了面试,对于还在失业且没有进过大厂的我来说,这谁一次不可多得的机会,我必须要好好把握!

美团我是在智联网上投的简历,之前也投过一次,简历都没通过删选,后来花钱请人帮着改了一次简历,重新投另一个部门,获得了面试机会。12 月 4 日中午 HR 打电话过来预约了下午 4 点半面试,说会在线写代码,让我准备好网络环境。结果 5 点半还没打电话过来,被放鸽子。与 hr 重新沟通过后,确定 5 号下午再面,可是跟 hr 沟通预约这一套貌似在美团并没有什么用。

美团技术一面 20 分钟

晚 7 点,因为想到第二天才面试,我刚准备出去吃个饭,面试官的电话就来了。开头就是各种抱歉,说开会拖延了。

1、自我介绍

说了很多遍了,很流畅捡重点介绍完。

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

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

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

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

4、讲一下项目的架构

我重点讲了 MVC

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

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

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

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

一面挺匆忙的,我估计面试官刚开完会还没吃饭呢。他说让我等,可能再找一个同事面我,可能就直接告诉我结果了。从一面面试官的声音和口吻,我判断他一定是个部门老大,问的设计偏多,后面 hr 告诉我他就是我要去的部门的老大。哈哈。

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

一面刚完洗了个苹果正准备吃,刚才的电话又来了。(感觉今晚状态不错哈!)

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

面试官:有没有用过 Spring,Spring IOC、AOP 机制与实现,Spring MVC?

ps:其实我挺不想被问到 Spring 的细节的,框架这些我吃着苹果再加上没怎么复习都不太记得了。

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

所以我对面试官是这么说的: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 收集器。

类加载:类加载的过程,Bootstrapclassloader-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(真的是简单的,So easy)

15、 面试官:算法题

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

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

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

终终终、终于到我提问环节了,哈哈!!!

:你们是什么部门

面试官:我们是核心部门,从事大数据研发这块!

:其实我对高并发和负载均衡挺有兴趣的,但是我平时接触的少,也没有太多环境让我在这方面有所体验,面试官你能建议建议我目前可以怎么学呢?

面试官:沉思了一下..... 这个确实不太好学,你只能先看些理论和别人的博客,在之后的工作中再去慢慢学习!

:好的,那请问中间件具体是做什么的,是解决高并发和负载均衡吗?

面试官:差不多是的,但是我们这个部门不是中间件,是大数据部门(我说:恩,我知道!),然后巴拉巴拉一通技术就完事了。

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

这一面面完,口干舌燥,我一度怀疑他在面试管理岗位。那我都给整蒙圈了!!!

美团技术三面 25 分钟(关键性的来了)

二面过后;面试官说是他是另外一个部门的,还需要进行一轮交叉面试!!!(内心苦涩)

总的来说就是以下几个知识点

1、MySql 优化

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

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

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

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

美团技术 HR 四面 30 分钟(激动人心的时刻到了!)

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

一:还是自我介绍,都四面了还自我介绍?(内心想法)

我还以为是单纯的 hr 面,所以介绍的都是我的性格和生活方面的,其实并不是!!!

二:问项目。

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

三:数据库优化

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

4、问了曾经的实战项目专题和相关的资料

项目还是刚开始工作时候做的,中间也间隔挺久了,一些技术细节上也没太总结,所以问细了我只能连想带编, 哈哈。资料内容方面倒还好,手机里保存了不少,一些算法的实现和改进、对比都还记得比较清楚,回答的挺流畅的,可能这真的就是技术型的 hr 面吧。

最后,本次面试分享就到此结束了,小编在这里还给大家准备了后续全套的笔试、面试真题!

资料已整理成文档,免费获取,需要的小伙伴可以+ VX: mxk6072

企业分类

技术分类

各位程序员朋友们,这些文件已经整理好了

需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦 

美团四面 Java 岗,终获 offer,我是这么回答面试官的相关推荐

  1. 四面阿里!终获offer!乔戈里直系学弟四面阿里面经分享!

    在四面之前,出现了个小插曲.就是面试官上午估计是有跟我打过电话,但是貌似跟饿了么的外卖员跟我打电话冲突了「应该都是走的阿里的电话系统」,导致我压根没接到电话「外卖员还说给我打电话我一直不接,我说我压根 ...

  2. 快手三面(Java岗位),offer已拿,面试官都问了些啥?

    快手的面试挺有挑战性的感觉哈哈哈哈,不过我觉得挺有意思的,感觉啥都能问到.(二面是10天前约的面试,差点要忘了)然后是HR面,昨天就收到offer 一面二面啥的我都忘记具体的了,就简单的总结一下 1基 ...

  3. 面试拼多多 Java 岗被刷了三次,在家闭关刷题66天,卷土重来,终获offer

    引言 这是群里一个朋友分享的故事,讲述的是他进入大厂拼多多的经历.(为数不多的,让我真心佩服的人) 他说之前就一直就想进拼多多工作,没有别的理由,就冲着他薪资待遇去的. 故事开始 (第一人称叙述)我是 ...

  4. 面试过程中如何回答面试官的问题,才能让你顺利拿到Offer?冰河想以经典的事务问题对你说这些!!(建议收藏)

    大家好,我是冰河~~ 相信大部分小伙伴在面试过程中,只会针对面试官提出的表面问题来进行回答.其实不然,面试官问的每一个问题都是经过深思熟虑的,面试的时间相对来说也是短暂的,面试官不可能在很短的时间内就 ...

  5. 抖音四面被拒,再战头条终获offer,附架构师必备技术详解

    前言 "金九银十"的秋招热潮已经开始了,经过7月8月这两个月的提前批,终于成功拿下了一些大厂的offer.小编经过这么多次的面试,这两天整理了一份面试清单分享给大家,希望能给大家一 ...

  6. 抖音四面被拒,再战头条终获offer,系列教学

    本篇将由 环境搭建.实现原理.编程开发.插件开发.编译运行.性能稳定.发展未来 等七个方面,对当前的 React Native 和 Flutter 进行全面的分析对比,希望能给你更有价值的参考. 前言 ...

  7. 开源新作!抖音四面被拒,再战头条终获offer,一文搞懂

    前言 MySQL在过去由于性能高.成本低.可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中.随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用.非常流行 ...

  8. GitHub重磅官宣!抖音四面被拒,再战头条终获offer

    一.内存与线程 1.内存结构 内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平.JVM的内存结构规定Java程序 ...

  9. 抖音四面被拒,再战头条终获offer,全套教学资料

    一.前言 关于开源框架这块,其实主要是针对自己项目中使用到的框架进行准备.从使用,到使用场景.优缺点以及源码实现都需要逐一掌握理解.这一部分是向面试官展示自己水平与能力的一个重要部分,所以要着重准备. ...

最新文章

  1. winpcapp配置c++网口通讯_MES、SCADA项目中的数据采集—基于C#与研华IO模块ModbusTCP通讯...
  2. OpenWrt安装迅雷成功,实现BT emule等多协议下载
  3. java中的static关键字总结
  4. 电子计算机什么理论,电子计算机的工作原理是什么?
  5. 通过stream去重_stream去重
  6. java 图片合并_Java如何实现图片的叠加与拼接操作
  7. 京东自动签到领京豆软件_京东618来了,合法又简单的自动领京豆的技能要get一下吗?...
  8. re2020 bt2020_如何在2020年选择最佳博客平台(比较)
  9. 工业界论文被CVPR收录有捷径?| CVPR 2017
  10. 云原生的高效生产工具 ---vagrant
  11. Java最新面试题汇总
  12. matlab中的级数怎默算_matlab相关系数计算公式(Pearson和Spearman,以及Kendall Rank)...
  13. 卸载程序时总是 显示“请等待当前程序完成卸载或更改”!
  14. Git 分支篇之分支介绍
  15. 十只老鼠和一千瓶毒药的故事。。。
  16. 计算机动画电影英语翻译,英语翻译_推荐!最适合练口语的10部动画电影_沪江英语...
  17. 计算机组成:浅析短转移、近转移、远转移
  18. GammaTone 滤波器详解
  19. 全网最全的Java学习路线图,附配套视频!
  20. 2022最全Java后端面试题总结(京东、阿里、字节、美团、拼多多等)

热门文章

  1. Mac下编写C或C++
  2. net core mysql开源框架_.NetCore开源集成框架
  3. Python open()方法中的newLine参数
  4. openwrt php 编译环境,openwrt基础编译教程
  5. k8s node节点重启后遇到的问题及解决
  6. Netflix继续开源,更多猴子进入视野
  7. 初学Linux服务器管理
  8. jmeter性能测试场景设计
  9. java安全 加密解密!
  10. Typora+PciGo-Core+SMMS自动上传图片