美团点评社招java一面java
一、作一下自我介绍吧,简单说一下你的项目?
二、有遇到过内存泄漏吗?大家是怎么解决的?这个前阵子确实遇到过一次,还算运气比较好。
三、java的基本类型有哪几个?String是否是java的基本类型?String为何要是final类型的?
四、反射机制的底层实现是什么?动态呢?动态的实现原理?
五、hashmap了解吗?说一下hashmap相关的一些东西?hashmap是线程安全的吗?为何是线程安全的?concureenthashmap了解吗?他是如何实现线程安全的?你刚才说1.8基于cas?cas的ABA问题怎么解决?
六、说一下JVM的线程模型?这些区域都分别是干啥用的?java线程模型和jvm线程模型注意区分、总结下,网上不少文章都是错的。
七、说一下java类加载器的工做机制?类加载在那个区域进行的?
八、说一下java的线程模型?violate了解吗?他的原理是什么?violate是线程安全的吗?为何不是?
九、保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
十、数据库的索引有哪几种?为何要用B+树来作索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优作过吗?说说你是怎么作的?
十一、redis了解吗?你说说怎么用redis实现分布式锁?
十二、spring中Bean的做用域,springMVC的controller是线程安全的吗?怎么去保证线程安全呢?
1三、消息队列有用过吗?说说你怎么用的?你这么用感受不大对吧。。大写的尴尬。。
1四、计算机网络了解吗?说一说TCP三次握手和四次挥手吧,感受这个真的是计算机网络必考知识点啊,每次问到计算机网络都会问这个。time_wait状态产生的缘由是什么?,有什么危害?能够如何避免?
1五、leetcode153. 寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。mysql
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。程序员
请找出其中最小的元素。面试
你能够假设数组中不存在重复元素。redis
示例 1:spring
输入: [3,4,5,1,2]
输出: 1sql
示例 2:数据库
输入: [4,5,6,7,0,1,2]
输出: 0数组
你手里有哪些offer了?最快何时能入职呢?还有什么问题想问的?而后说会有hr联系你,次日就接到了hr约二面时间的通知。安全
总结下来,面试问的东西仍是挺宽的,并且问的很细,一个知识点基本都是问到答不上来为止。仍是有不少东西须要增强?在美团的面试中仍是学到了一些东西。
1.首先仍是问项目。问的比较细,比较全。
2.String,StringBuffer,StringBuilder的区别,为何String是不可变的,StringBuffer和StringBuilder哪一个是线程安全的,他们分别适用于什么场景。
3.java类加载过程是怎么样的,说一下volatile。
4.并发包了解吗?假如几个线程之间相互等待,能够用哪一个并发类来实现,他的原理是什么?
5.数据库慢查询优化了解哪些?说了不少,面试官说假如这些都已经作好了仍是很慢怎么办?最后不清楚问了下面试官,面试官主要想了解数据库分区的知识。
6.说一下spring容器的启动过程?
7.讲一下分布式锁,基于zookeeper实现和redis实如今性能上有什么差别?
8.kafka如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?
9.最后写了道题,leetcode55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每一个元素表明你在该位置能够跳跃的最大长度。
判断你是否可以到达最后一个位置。
示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 咱们能够先跳 1 步,从位置 0 到达 位置 1, 而后再从位置 1 跳 3 步到达最后一个位置。
示例 2:
输入: [3,2,1,0,4]
输出: false
解释: 不管怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 因此你永远不可能到达最后一个位置。
最快何时能过来?有什么问题想问的?而后说后面有hr再和你联系。
面试官首先问了不少简历中的一些基本信息.画一下你这个项目与哪些工程交互,它在大家的产品中处于什么样一个位置
画一下大家这个项目的架构图,挑一个你以为比较难的业务场景来说一下,
大家这个项目中都遇到了哪些问题呢?说说大家最后都怎么解决的
写了一段代码,问这个代码最后输出什么?申请多大的内存空间,都在什么位置申请的
public class Test {
public static void main(String[] args) {
String str = "hello";
test(str);
System.out.println(str);
}
public static void test(String str){
str = str + "world";
System.out.println(str);
int[] a = new int[1024];
}
}
hashmap了解吗?他的set和get的时间复杂度是多少?为何是O(1),说下详细过程,hashmap是线程安全的吗?
Jvm了解吗?jvm中哪些能够做为垃圾回收的gcroot?为何呢?
何时能过来上班?而后就说等会hr面。
问了下基本状况,何时能过来,为何想换工做?在上家的绩效和薪水状况,指望工资是多少。
针对上面的技术我特地整理了一下,若是想学习Java工程化、高性能及分布式、深刻浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友能够查看一下:
资料获取方式:关注公众号:“程序员白楠楠”获取上述资料