前几天得知我的某个可爱的应届小学妹一次性拿下美团Java岗4面offfer,导致我越发觉得自己真心有点菜鸡,我弱小的心灵受到了一万点暴击!

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

image.png

羡慕归羡慕,不过这又为我码字提供了素材(哈哈哈),咱今天就大致分享一下学妹的这美团Java4面面经,看看人家面试都问了些啥(并在文末附带 ☛☛Java面试+学习资源☚☚

美团Java岗一面(20分钟左右)

学妹自述:晚7点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。。

算法题:给一个数字串,要求划分为有效的ip地址,求出所有的结果

输入:s = "25525511135"
输出:["255.255.11.135","255.255.111.35"]
输入:s = "0000"
输出:["0.0.0.0"]
输入:s = "101023"
输出:["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]

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

美团Java岗二面(60分钟)

Part 01 技术问题

  • Java如何使用jdbc连接数据库?

  • 如何实现线程安全?

  • 如何创建线程?如何创建线程池?

  • 说说都有哪些锁?

  • 了解spring boot吗

  • redis特点

  • redis都有哪些数据结构?

  • 用到了redis哪些命令?

  • redis的应用?

  • 为什么redis是单线程?

  • redis的复制与集群?

  • redis的持久化?

  • rdb的两种策略?

  • rdb和aof各有什么优缺点?

Part 02 项目

  • 介绍一下项目
  • 说说秒杀的流程
  • 如何解决超卖的?
  • 为什么要用redis?
  • 库存没卖完怎么办?
  • jmeter<typo data&#45;origin="压测" id="typo&#45;1062" ignoretag="true">压测</typo>如何?
  • 消息队列的作用?
  • 如何减库存的?
  • 秒杀时突然想增加库存怎么办?

Part 03 算法题

  • 给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。

美团Java岗三面(75min)

  • 自我介绍
  • 聊项目
  • 讲讲 ThreadPoolExecutor 的七个参数?怎么配置?能说一下核心线程数、最大线程数、工作队列之间的数量关系吗?
  • ThreadPoolExecutor 中提交任务后的执行步骤?
  • 如果我需要任务有返回结果的话你需要传入什么类型的任务?
  • 还用过别的设计模式来解决类似的问题吗?(项目中的问题,扯动态代理,又问了两种动态代理实现的区别,Spring AOP 用的是哪种)
  • Spring AOP 有出现过代理失效的情况吗?你在哪里用到过 AOP ?
  • 讲讲 Spring 的事务管理吗?
  • (中间穿插一道算法题、SQL 题)
  • 你在开发过程中都遇到过哪些异常?你是怎么处理的?(空指针、SQL 异常、类型转换异常)
  • 各种空指针异常判断题
  • 算法题:有一个正整数 n(n < 100),期望找出一个最小的 n 的倍数 m(m < 2^64 - 1)且 m <typo data&#45;origin="只由" id="typo&#45;1607" ignoretag="true">只由</typo> 1、0 组成,例如:输入 n = 2 输出 m = 10,输入 n = 3 输出 m = 111

美团Java岗 hr面(15min)

  • 哪里人?能接受异地工作吗?
  • 平时学习怎么样?有参加竞赛或获得奖学金吗?
  • 介绍一下项目经历,你在这里面扮演什么角色?
  • 高考多少分之类的问题

image.png

如何备战Java面试?

谈到怎么准备Java面试,我想说,若你还同无头苍蝇一般不知如何下手,那么第一件事你要做的就是梳理自身的知识脉络。毕竟,想要进大厂,就需要具备更多的知识树,需要掌握更全面的知识体系,所以就需要对知识进行一个系统的梳理了。

如果觉得自己手绘Java知识脉络图比较麻烦,可以借鉴参考下方我之前大致手绘一份知识网图(Java知识体系庞大,我是用的xmind绘制的脉络图,文中无法直接上传原件,截图如下,内容过多以至于图片不够清晰,但可提供分享原件, ☛☛戳☚☚)。

image.png

此外,关于面试刷题,个人觉得这份 “Java高分面试指南”很不错,包含25个专题内容,整个1000+题50w+字解析,够你刷到秃顶:

  • JavaOOP
  • Java集合/泛型
  • Java中的IO与NIO
  • Java反射
  • Java序列化
  • Java注解
  • 多线程&并发
  • JVM
  • Mysql
  • Redis
  • Memcached
  • MongoDB
  • Spring
  • Spring Boot
  • Spring Cloud
  • RabbitMQ
  • Dubbo
  • MyBatis
  • ZooKeeper
  • 数据结构
  • 算法
  • Elasticsearch
  • Kafka
  • 微服务
  • Linux

image.png

最后,还有2021最新整理的“Java中高级核心知识点解析”,查漏补缺知识点刷它最合适不过,包含整个30类知识点的集合:

  • JVM
  • JAVA集合
  • JAVA多线程并发
  • JAVA基础
  • Spring原理
  • 微服务
  • Netty与RPC
  • 网络
  • 日志
  • Zookeeper
  • Kafka
  • RabbitMQ
  • Hbase
  • MongoDB
  • Cassandra
  • 设计模式
  • 负载均衡
  • 数据库
  • 一致性哈希
  • JAVA算法
  • 数据结构
  • 加密算法
  • 分布式缓存
  • Hadoop
  • Spark
  • Storm
  • YARN
  • 机器学习
  • 云计算

image.png

从学习路线→☛面试刷题→☛核心知识补漏,以上全套的Java学习资源皆可共享给有需求的你, ☛☛共享☚☚

image.png