美团一面(80min)
(为保证内容纯正,下面的语言是由程序员Y自己整理的,霸哥没有任何改动)
面试主要是从一个系统设计出发,考察基础跟项目架构经验。美团相当重视基础问题(计算机网络、操作系统)
主要是围绕一个系统优化来的,下面就只写中间问的几个点:
1、项目介绍(聊一下自己做的项目,互相了解了一下)
2、redis相关问题
- redis主要能解决什么问题,聊一下你所知道的?
- 聊一下redis高可用的相关。主要说一下哨兵集群的流程,包括选举、以及宕机之后的处理方案。cluster集群的工作流程
- 聊一下redis哈希槽,为什么不用一致性哈希的方案
- redis为什么这么快
- redis跟mq的技术选型
3、mysql相关问题
- mysql的事务隔离级别
- 面试官描述了一个场景…这种情况下你怎么优化mysql,说说你优化的流程步骤
- 你能想到什么优化mysql吞吐量的方案
- mysql的底层数据结构?索引怎么存储的?
4、rabbitmq
- rabbitmq的优势,能解决什么问题
- 说一下rabbitmq怎么保证高可用的?
- 聊聊镜像队列,怎么运作的?口述下代码??
5、并发编程相关
- hashmap跟concurrentHashMap
6、接近一个小时的计算机网络基础、操作系统基础
- 进程、线程
- http1与http2
- 网络五层架构,分别是做什么的?
- TCP、UDP区别,UDP怎么实现可靠性的,在哪一层实现的?
- TCP的流量控制、拥塞控制
- 进程调度算法
- 等等…记不清了,美团贼喜欢问基础,接近一小时
7、JVM相关
- 类加载、双亲委派
- 垃圾回收相关?怎么判断?算法?收集器?
- 内存区域
8、手撸算法题两道
美团二面(70min)
正儿八经的面试了…
1、再来一个场景,优化mysql,具体步骤,什么命令,怎么操作,比较详细
2、redis分布式锁的作用?什么场景用过?会有什么问题?(原子性的问题、误删锁、误得锁等等)怎么解决这些问题?(面试官提了几个场景,这块聊了半个多小时)
3、详细聊了rabbitmq的工作流程。介绍下rabbitmq的组建,分别有什么类型,具体是怎么用的?口述代码
4、redis高可用
5、聊聊你了解的RPC,dubbo与springcloud?我因为没做过微服务项目,因此,问我,你觉得应该有什么功能,我从springcloud的角度回答的
6、RPC与mq技术选型,说下原因
7、Spring源码,我讲了事务的源码(撸了好几次了,比较熟悉)
8、手撸算法题两道
9、聊实习时间、地点,未来发展
美团三面(5min)
这个5min很关键了↑
HR直接给录用函
谈笑风生…聊薪资,工作地点,还有一些要录入系统的基本信息,留了电话
最后我们该如何学习?
1、看视频进行系统学习
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
Mybatis 3源码深度解析:
Redis学习笔记:
Spring Boot核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
资料领取方式:点击蓝色传送门免费领取上述资料
文章内容中涉及到的Java面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,只需你动动手多多支持即可!
资料领取方式:点击蓝色传送门免费领取上述资料
文章内容中涉及到的Java面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,只需你动动手多多支持即可!