前言
前几天收到一位粉丝的投稿,他之前去面了美团 (一名本科毕业非计算机专业的程序员),成功入职。一共三面,过程虽然有点艰难但是总的来说还是比较顺利的,接下来给大家分享一下面经。
一面
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.三个词语概括自己的性格
向面试官提问
这里其实不是每个人都会被问到这块,看情况的。
-
首先问了待遇之类的(巴拉巴拉一堆,面试官也还算有耐心)
-
加班情况怎么样(面试官笑了笑,但是在我的接受范围内,还行,平时也还好,加班不多)
-
说下项目做了些什么,架构之类的,用到的哪一些比较多。
-
你们是什么部门(他说是核心部门,大数据研发)
-
最后没啥问题了,他让我保持电话畅通。
总结
我这边整理了一份:Spring 系列全家桶、Java 的系统化资料:(包括 Java 核心知识点、面试专题和 20 年最新的互联网真题、电子书等)有需要的朋友 查看文末即可获取。
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
Java 核心知识笔记
Java 面试宝典
Java 集合面试题
多线程/并发面试题
Redis 面试题
Spring 面试题
MyBatis 面试题
Spring Boot 面试题
RabbitMQ 面试题
算法面试题(字节面试必问)
美团面试题(其他大厂的也有)
所有的面试题目都不是一成不变的,特别是一线互联网种大厂,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
最后,有想要这份 Spring 系列全家桶、Java 的系统化资料:(包括 Java 核心知识点、面试专题和 20 年最新的互联网真题、电子书等)有需要的朋友可以添加小助理v:java9610 领取