前言

前几天收到一位粉丝的投稿,他之前去面了美团 (一名本科毕业非计算机专业的程序员),成功入职。一共三面,过程虽然有点艰难但是总的来说还是比较顺利的,接下来给大家分享一下面经。

一面

1.自我介绍和过往工作经历(介绍一下项目流程,由于之前没有任何面试经验,没有get到面试官的点,答得不太好,面试官应该是想让介绍一下怎么设计你的系统框架、用到哪些技术)

2.乐观锁和悲观锁,应用场景有哪些?什么情况下会发生死锁,怎么处理死锁?

3.HashMap的原理,由此延伸问红黑树是什么,Hash冲突怎么解决?

4.说一下排序算法内容。

5.如何保证缓冲区和数据库之间的强一致性(使用加锁)

6.字符串中句子的反转(比如ABC DEF,输出DEF ABC)(很简单,可以先反转整个字符串,然后反转单词,或者先将句子切分为单词,然后反转)

7.设计一个分布式负载均衡缓冲系统,如何快速定位到是那个服务器(使用key分段、一致性hash)

8.Spring Mvc的执行流程。

9.多线程用过吧?写过一些demo,那你说说多线程之间的通信,回答用wait sleep notify notifyAll配合使用 然后就问 wait和sleep一样吗?

二面

1.说一说在浏览器中输入一个url后,直到浏览器显示页面的过程中发生了什么(我主要说了DNS,然后他有接着问了DNS的细节,然后就是ARP路由,然后服务器处理,返回,浏览器呈现,获取html中的依赖资源)

2.谈谈Java的垃圾回收机制。

3.谈谈三次握手四次挥手 以及为什么是三次 为什么是四次 一定要是四次吗?

4.项目里用到了Redis 为什么用它?

5.如果让你设计一个大型网站,你觉得哪些东西是需要考虑的 为什么?

6.Linux下如何查看网络端口状态(netstat),如何查看内存使用情况(top)

7.数据结构学的如何?算法这块怎么样,简单说说吧(自由发挥)

8.用过动态代理吗?

9.请描述避免多线程竞争时有哪些手段?

10.请简述HTTP的5个常用Method及其含义,以及5个常用Status Code及其含义?HTTP与HTTPS的区别是什么,简述一下HTTPS的实现原理。

11.谈Spring的事物管理。

12.如果线上某台虚机CPU Load过高,该如何快速排查原因?只介绍思路和涉及的Linux。

三面

1.自我介绍+项目

2.说说深入理解JVM中印象最深刻的章节(我说了JVM内存模型,垃圾回收和类加载)

3.讲下数据库优化(索引、数据库结构优化,然后牵扯出红黑树,让手撕红黑树,讲了下大概实现)

4.Spring的过滤、Spring Mvc的分层 以及问了些常用的注解。

5.你觉得你哪一块只是最熟悉(我说了Java的基本数据结构和算法这块)

6.Spring的优点?Spring AOP的原理?Spring如何实现解耦合?

7.有没有用过Hibernate、mybatis、git

8.对‘a’,‘b’,‘c’,‘d’排序,排成指定的顺序

9.一个圆环上有n个点 a从任意一个点出发 到达下一个点都需要Ag能量,每一个点都有cg能量补给,假设a最初有Bg能量,问a最初Ag能量为多少能保证a绕圆环一周

10.你在项目中做了以图搜图,你是怎么实现的,谈谈你的处理过程?

11.前端会不会,Ajax是什么,Ajax实现原理

12.Java IO,NIO,Java中有没有实现异步IO

13.HTTP有没有状态,我说无状态,怎么解决HTTP无状态

14.分布式事务框架,2PC 3PC的过程,为什么2PC用的比较多,自己实现过么,对比过他们的性能不

15.学过那些框架知道那些,分别怎么用的?

16.JVM垃圾回收算法,垃圾回收有哪些算法,g1的回收算法过程,遇到过垃圾回收的问题么,怎么解决的?

HR面试

1.why投mt

2.why投外卖配送bu

3.自己最想从事什么行业

4.三个词语概括自己的性格

向面试官提问

这里其实不是每个人都会被问到这块,看情况的。

  1. 首先问了待遇之类的(巴拉巴拉一堆,面试官也还算有耐心)
  2. 加班情况怎么样(面试官笑了笑,但是在我的接受范围内,还行,平时也还好,加班不多)
  3. 说下项目做了些什么,架构之类的,用到的哪一些比较多。
  4. 你们是什么部门(他说是核心部门,大数据研发)
  5. 最后没啥问题了,他让我保持电话畅通。

总结

以上就是美团技术三面+HR面。

以下是总结的最新美团等大厂面试java高频题目和答案。有想获取的小伙伴∶一键三连(点赞+收藏+关注) 后,添加微信:mxm9843 即可免费获取到。

学习笔记