美团点评Java岗社招面试经历
一面:
1、做一下自我介绍吧,简单说一下你的项目;
2、有遇到过内存泄漏吗?你们是怎么解决的?
3、java的基本类型有哪几个?String是不是java的基本类型?String为什么要是final类型的?
4、反射机制的底层实现是什么?动态呢?动态的实现原理?
5、hashmap了解吗?说一下hashmap相关的一些东西?hashmap是线程安全的吗?为什么是线程安全的?
6、concureenthashmap了解吗?他是如何实现线程安全的?
7、你刚才说1.8基于cas?cas的ABA问题怎么解决?
8、说一下JVM的线程模型?这些区域都分别是干啥用的?
9、说一下java类加载器的工作机制?类加载在那个区域进行的?
10、说一下java的线程模型?
11、violate了解吗?它的原理是什么?violate是线程安全的吗?
12、保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
13、数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的?
14、redis了解吗?你说说怎么用redis实现分布式锁?
15、spring中Bean的作用域,springMVC的controller是线程安全的吗?怎么去保证线程安全呢?
16、消息队列有用过吗?说说你怎么用的?
17、计算机网络了解吗?说一说TCP三次握手和四次挥手吧
18、time_wait状态产生的原因是什么?,有什么危害?可以如何避免?
19、寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
请找出其中最小的元素。
你可以假设数组中不存在重复元素。
示例 1:
输入: [3,4,5,1,2]
输出: 1
示例 2:
输入: [4,5,6,7,0,1,2]
输出: 0
二面:
1、首先还是问项目。
2、String,StringBuffer,StringBuilder的区别,为什么String是不可变的,StringBuffer和StringBuilder哪个是线程安全的,他们分别适用于什么场景。
3、java类加载过程是怎么样的,说一下volatile。
4、并发包了解吗?假如几个线程之间相互等待,可以用哪个并发类来实现,他的原理是什么?
5、数据库慢查询优化了解哪些?
6、说一下spring容器的启动过程?
7、讲一下分布式锁,基于zookeeper实现和redis实现在性能上有什么差异?
8、kafka如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?
9、最后写了道题:跳跃游戏;
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。
示例 2:
输入: [3,2,1,0,4]
输出: false
三面:
1、hashmap了解吗?他的set和get的时间复杂度是多少?为什么是O(1),说下详细过程,hashmap是线程安全的吗?
2、Jvm了解吗?jvm中哪些可以作为垃圾回收的gcroot?为什么呢?
3、为什么想换工作?在上家的绩效和薪水情况,期望工资是多少。
4、什么时候能过来上班?
#美团##社招##Java工程师##面经#