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

news2025/1/12 6:13:49

前言

经历了 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

企业分类

技术分类

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

稳定性建设之JavaScript代码不能被阻断

稳定性建设之JavaScript代码不能被阻断 背景 js代码可能会因为某些原因,导致出错,进而整个后续代码有可能都被阻断。直接影响线上的稳定性 最常见的js被阻断的情况 console.log(111) // 预期 a {} // 结果 a undefined a.a 1 console.log(222) // …

Pycharm的简单介绍以及api的使用

一、什么是Pycharm? Pycharm是一种python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、脚本控制。此外,该IDE提供了一些高级功…

MyBatis-Plus中自动填充功能的用法

系列文章目录 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus之ActiveRecord[基础增删改查操作]_心态还需努力呀的博客-CSDN博客 MyBatis-Plus分页查询(快速上…

【JavaWeb开发-Servlet】day06-学生成绩管理系统-实现分页功能

目录 一、前端设计 二、分页功能 ①创建实体层 ②在DAO层新建两个方法 ③编写业务层 ④实现Servlet层 ⑤修改前端页面 ⑥测试 ⑦思路 ⑧扩展 一、前端设计 原来的前端非常简陋,没有明显的突出其功能,下面将对前端页面进行新的完善。 写一个标题…

HPPH-DSPE-PEG/NH2/MAL光克洛-磷脂-聚乙二醇/光克洛-聚乙二醇-氨基/马来酰亚胺

小编今天和大家一起来学习HPPH-DSPE-PEG/NH2/MAL光克洛-磷脂-聚乙二醇/光克洛-聚乙二醇-氨基/马来酰亚胺相关研究内容! 光克洛,第二代的光敏剂,可用于光动力疗法 (PDT),基本结构为二氢卟吩类化合物。美国研究人员从绿色植物中提取、纯化&…

nginx笔记

作者:ThinkStu 文章目录一、简介二、常用配置1、listen2、server_name3、location4、sendfile5、nodelay/push6、add_header7、set 变量8、if9、return10、keepalive三、常用操作1、Gzip压缩2、正则表达式3、rewrite重写4、rewrite范例5、跨域6、防盗链7、适配移动设…

R语言数据可视化分析案例:探索BRFSS数据

最近我们被客户要求撰写关于BRFSS数据的研究报告,包括一些图形和统计输出。 加载包 library(tidyr) library(knitr) opts_chunk$set(echo TRUE, fig.align "center") 载入资料 load("brfss2013.RData")第1部分:数据 描述如何收…

Spring Boot ActuatorAdmin

Spring Boot Actuator&Admin 指标监控简介 干嘛的: 主要运用在微服务架构,所以我建议你先学微服务,否则可能get不到它的用处,只有大型的分布式系统才会用到指标监控… Why:? 对于一个大型的几十个、…

低代码如何自定义主题?一文教会你

SuccAP低代码开发平台,除了提供了多主题供选择外,还支持自定义报表主题,当系统自带的主题无法满足项目需求时,可以根据项目设计并新增主题,本文将介绍如何去新增自定义主题。 新增自定义主题可按如下步骤操作&#xf…

APS高级计划排程在乳制品行业的应用

目前乳制品行业供应链管理中存在的主要问题 生产盲目性,应对市场变化能力不足。现如今牛奶已经成为人们日常饮食需求的必需品,很多生产厂家就开始大量的生产,全然不顾市场的需求度,应对市场变化的能力不足,导致了有一…

计算机毕业设计ssm+vue基本微信小程序的心理服务平台 uniapp 小程序

项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的青少年心理健康管理满足不了现代人的生活追求,服务质量、服务速度,之前的很多网站由于功能、或者框架设计等原因,无法完美的展现它的特色,优势,浪费了很多资源。使用管理系统进行…

今天步行数5000多

今天步行数量比较多的,有五千多步吧,希望明天能继续保持下去。

企业知识分享系统的设计与实现

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&…

两种方案解决vscode浏览器跨域问题

一、 问题 1.1 在接收 json 数据的时候出现了以下错误; 打开测试用的 json 文件发现数据并没有问题,而第一个报错可以看到 Cross origin requests are only supported for protocol schemes:… ,也就是说所使用的数据不在跨域的许…

毕业后5年,我终于变成了月薪13000的软件测试工程师

目录 我为什么选择转行 工作环境 我选择了转行软件测试 写在最后 《软件测试工程师发展规划路线》 一、测试基础 了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维 二、Linux必备知识 Linux作为现在最流行的软件环境系…

场景案例│数字员工助力医疗行业打通信息系统壁垒,实现高效率运营

据埃森哲研究预测,到2026年人工智能技术每年将为医疗保健行业节省1500亿美元。 随着人们对数字化的需求日益增长,数字技术成为转型升级的新兴力量,许多医疗机构积极采用数字员工推进数字化转型的步伐。 在数字员工的支持下,医疗…

Redis Replication

高可用架构-Redis Replication 今天学习下如何基于Redis 复制功能构建高可用架构-主从复制,Redis Replication 支持数据复制和故障切换。Redis复制是允许Redis实例完全复制主实例的过程。默认情况下,复制是一个异步过程。Redis复制在主机端和副本端都是…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java毕业设计选题档案管理系统bvr3c

毕业设计其实不难,主要毕业的时候任务太紧了,所以大家都非常忙没有时间去做,毕业设计还是早做准备比较好,多花点时间也可以做出来的,建议还是自己动手去做,比如先选一个题,这样就有方向&#xf…

Flutter实现文件上传华为对象存储(OBS)

本文主要讲述在 Flutter 项目中如何实现将文件上传到华为 OBS(对象存储)中,并封装为三方库方便灵活使用。 背景介绍 在大多项目中都会存在文件上传的需求,之前的实现都是调用后台的文件上传接口将文件上传到服务器上,…

从投资人发现“新大陆”,看“产融星城”为何成?

文丨熔财经 作者|陈小江 “我从来不把《我要投资》节目看作是秀(综艺),要知道《我要投资》是在前面的,秀(综艺)只是一种形式而已。本质上,(参加节目)还是为了投资”。 …