蚂蚁金服面试复盘
1. 首先介绍项目以及架构,然后问了dubbo和zookper之间的关系,为什么不用别的中间件呢,zookper在dubbo中充当什么样的角色,用别的替换它行不行,dubbo和zookper的一些配置参数。
2. 然后聊到了mysql,谈了谈mysql的索引,为什么不用二叉树,会有什么样的问题,红黑树呢,为什么也不用,hashmap与B+树哪个用的多一点,B+是什么样的结构,B+能解决什么样的问题,然后就谈到了索引引擎,myisam是什么样的,什么时候用,innodb呢,这里面有用到聚集索引吗,innodb是怎样实现它的行级锁的,谁能支持事务呢,事务了解多少简单说说,事务的七种传播行为说一下,你的项目中那里能用到这块,你觉得应该怎么用。
3. 刚刚谈到了mysql,除了索引优化,你还做过哪些优化(分库分表巴拉巴拉),explain用过吗?慢查询是怎么样做的mysql优化的,查询出来的参数你知道分别是什么意思吗?比如ket_len,extra,table分别是什么意思。
4. Jvm了解吧,说说它的内存结构,这些分别都会做点什么功能,比如说我Object个对象,影响了几个区域呢,再比如我往里面加一个常量,这个对象的常量位于哪里,那如果说我用static修饰一下,他会在哪呢,我们都知道heap里面做gc,那现在的gc器最新的是哪个,和其他有什么区别吗?你都知道哪些垃圾回收算法,简单说说优缺点,诶?新生代里面Eden、s1、s2比例多少呢?那它和老年代呢?这两个之间gc一样吗?minor gc和full gc遇到过吗?什么样情况会触发。
5. Spring了解吧,设计模式除了常见的单例模式和工厂模式你还知道哪些?他们分别会做点什么?ioc与di说一下,这里面涉及的beanfactory和applicationcontext的区别有哪些?你刚刚提到了单例模式,简单说一下单例模式里面的双重锁模式,那这种锁叫什么呢,这种可重入锁与synchronized有什么区别?synchronized源码了解吗,简单说说。那原子性和安全性它都能保证吗?volatile呢?
6. 好的,我这边没有什么要问的了,你有什么要问我的吗?
我:你们对于应届生数据结构要求高吗?
答:对数据结构要求不高,都是基本的,你数据结构还不错是吗?那我再问一个吧,在平衡二叉树的红黑树和AVL你更了解哪一个?
我:红黑树吧
答:红黑树为什么要发生自旋呢?
我:巴拉巴拉····
答:嗯嗯,好的,那今天面试就到这里吧