南京小米一面凉经
1.hashmap的put的过程,越详细越好
2.hashmap在put的时候插在前面还是后面(分别说了1.7和1.8两种情况,以及可能会遇到什么情况)
3.在hashmap做put的时候是怎么做hash的以及为什么容量是2的n次方
4.让你设计个lru,你会考虑哪些因素,具体怎么做(答:容量还有热点数据.然后面试官还补充了搜索,我说用linkedhashmap做,然后说了下怎么实现,他说还有什么其他方式么?linkedlist hashmap)
5,如果让你自己实现一个rpc框架你怎么做(在不考虑负载均衡,容错服务降级的这些条件下,给他说了一下服务注册服务发现之类的~问具体怎么实现通信,我说socket我也不知道对不对,反正网络通信这块我不知道)
6,mybatis如果实现分表你怎么做?(我就说参考mycat实现原理,在executor处进行拦截,然后判断是否有分表字段,有的话做对应的路由到某个表,没有的话把请求打到所有的表上)
7,spring ioc说下
8,springmvc流程(卧槽给忘了,把几个组件说了下)
9,synchronized和lock区别,底层实现,试用场景,synchronized加在方法和代码块底层实现方式相同吗?(答得是一个在class文件加标志位,一个在字节码文件中加监控)
10,线程池说一下,几种线程池适合场景~給了种场景问用哪个~然后***那种会出现什么状况,并发性为啥好(大致说了下他底层的阻塞队列不同)
11,固定大小类型的线程池,如果没达到核心线程的时候如果再有请求的时候还会创建线程吗?比如核心大小也5现在已经创了2个线程,但是这两个线程现在空闲还会创建新的吗,我说会,他问为什么还要创建,为什么不能用这两个空闲的?
12,redis几种数据结构以及底层实现
13,redis缓存雪崩和缓存击穿说一下,说一下缓存击穿怎么解决(回答的是布隆过滤器以及缓存空对象)
14,你知道的数据库中间件有哪些?(mycat 和当当的sharding jdbc还有360好像有一个叫阿特拉斯)然后问我mycat在客户端还是服务端(服务端,sharding jdbc 是客户端)
15,算法题牛客上的题目比如1234567 7654123 旋转数组求一个数在不在这个数组中
16,中间还有一个问我springmvc拦截器和servlet拦截器的区别?还有如果都匹配怎么执行
整个过程持续一个小时,中间还有一些记不起来了,反正挖的是很深~每个问题都有好多的为什么~
面试官:你了解的东西不够深入,你觉得你这个面试准备的怎么样?今天面试就到这你回去吧
#小米##秋招##面经##Java工程师#
2.hashmap在put的时候插在前面还是后面(分别说了1.7和1.8两种情况,以及可能会遇到什么情况)
3.在hashmap做put的时候是怎么做hash的以及为什么容量是2的n次方
4.让你设计个lru,你会考虑哪些因素,具体怎么做(答:容量还有热点数据.然后面试官还补充了搜索,我说用linkedhashmap做,然后说了下怎么实现,他说还有什么其他方式么?linkedlist hashmap)
5,如果让你自己实现一个rpc框架你怎么做(在不考虑负载均衡,容错服务降级的这些条件下,给他说了一下服务注册服务发现之类的~问具体怎么实现通信,我说socket我也不知道对不对,反正网络通信这块我不知道)
6,mybatis如果实现分表你怎么做?(我就说参考mycat实现原理,在executor处进行拦截,然后判断是否有分表字段,有的话做对应的路由到某个表,没有的话把请求打到所有的表上)
7,spring ioc说下
8,springmvc流程(卧槽给忘了,把几个组件说了下)
9,synchronized和lock区别,底层实现,试用场景,synchronized加在方法和代码块底层实现方式相同吗?(答得是一个在class文件加标志位,一个在字节码文件中加监控)
10,线程池说一下,几种线程池适合场景~給了种场景问用哪个~然后***那种会出现什么状况,并发性为啥好(大致说了下他底层的阻塞队列不同)
11,固定大小类型的线程池,如果没达到核心线程的时候如果再有请求的时候还会创建线程吗?比如核心大小也5现在已经创了2个线程,但是这两个线程现在空闲还会创建新的吗,我说会,他问为什么还要创建,为什么不能用这两个空闲的?
12,redis几种数据结构以及底层实现
13,redis缓存雪崩和缓存击穿说一下,说一下缓存击穿怎么解决(回答的是布隆过滤器以及缓存空对象)
14,你知道的数据库中间件有哪些?(mycat 和当当的sharding jdbc还有360好像有一个叫阿特拉斯)然后问我mycat在客户端还是服务端(服务端,sharding jdbc 是客户端)
15,算法题牛客上的题目比如1234567 7654123 旋转数组求一个数在不在这个数组中
16,中间还有一个问我springmvc拦截器和servlet拦截器的区别?还有如果都匹配怎么执行
整个过程持续一个小时,中间还有一些记不起来了,反正挖的是很深~每个问题都有好多的为什么~
面试官:你了解的东西不够深入,你觉得你这个面试准备的怎么样?今天面试就到这你回去吧
#小米##秋招##面经##Java工程师#