开头的话
今年无意中给菜鸟网络投了简历,本来觉得应该没啥机会,突然有一天收到邮件,告诉我阿里一位帅哥(肯定是)推荐我应聘菜鸟网络的职位,让我等待面试,很开心,于是我在工作之余开始准备面试。
过了五六天、下午三四点突然接到一个电话,问我可不可以开始面试。当时我手上的活已经做完了,就毅然决然的答应了
一面
1、讲一讲Resource和Autowired的区别
2、熟悉hashmap吗?它的数据结构是什么?它是怎样实现查询的
3、讲一讲线程池、线程池的具体实现
4、JVM的结构、垃圾回收算法、什么算法用在什么地方,讲解一下CMS垃圾回收机制
5、了解消息中间件吗?讲一讲消息中间件的实现过程,如何用消息中间件做到分布式事务?聊聊消息中间件Push模型和Pull模型优缺点
6、讲一讲sql和索引
7、大量数据时,mysql的limit导致查询速度慢,分页分了很多页,前半部分速度还行,后半部分怎么解决?有没有什么好办法?问的应该是数据库的设计有存取方案
8、LINUX的基本操作
一面花了大概四十多分钟,回答不怎么好,一是有些紧张,二是有些东西真的忘记了,第一个问题就没有答上来,只记得Resource是要指定name属性,而Autowired是按类型、而且limit那边也没想到这些,当时想的是数据库的设计模式。。。
一面过了不久,大概四天,就接到了二面的电话,心里那个开心啊,先写出二面的题目:
二面
1、做一个自我介绍
2、讲讲你自己做过什么项目,在公司里解决了哪些问题?遇到的最困难的问题是什么?给你印象最深的事情是什么?
3、了解事务的状态吗?脏读、不可重复读、幻读各自如何解决?
4、如何实现乐观锁?如何在消息中间件中用到乐观锁?
5、JVM、垃圾回收、
6、LINUX的操作、系统内存消耗过大如何查找问题,如何解决?
7、讲一讲线程池、你如何实现一个线程池、线程池的底层原理
8、redis为什么是原子性的,redis集群还是原子性的吗?
9、如何实现分布式锁,讲一下具体操作流程
10、如何实现登录、注册的短信下发
11、如何实现单点登录,session等
12、扫码登录如何实现的、为什么扫码在手机上点了确定会自动跳转页面
二面花了快一个半小时,感觉自己二面答得比一面好得多,基本上所有问题都能答出来,还可以跟面试官探讨一下技术,可以说是学到了很多东西吧,同时也找到了自己项目上的一些漏洞(感觉面试官在帮我debug,hh),恩,等待三面中,希望有吧