阿里 蚂蚁系 网商银行 Java开发暑期实习 面经
阿里 蚂蚁系 网商银行 Java开发 暑期实习 一面 20:25-21:20 55分
前言:上一个蚂蚁系部门,一面二面隔了18天,二面被KPI面了。
3月30日 申请转部门
4月11日 复活 一面
一段朴实无华的自我介绍
面试官小哥哥听起来比较年轻,自称师兄,没有对项目进行提问,直入主题,折磨就此开始:
-
看你简历写了Springboot,看过那些springboot源码?答:sorry,没看过,了解一些基本的IOC、AOP
-
那说一下IOC和AOP吧。说了对IOC和AOP的理解,还说了反射和代理模式
-
使用AOP实先一个日志,如果方法A引用了方法B,那么方法B的东西会打印吗?答:sorry,说会打印,面试官说下去想想,GG。面试官:没关系
-
刚才你说到反射,那么对于一个private类型的变量,我如何进行反射?答:sorry,说了一下普通方法的反射,这个没了解过。面试官:没关系
在我强烈暗示,我没看过spring源码,但是java集合、redis源码看过后,面试官开始问java源码
-
hashmap说一下
-
hashmap put()说一下,resize()说一下
-
在put中,如果一个key存在,插入会覆盖value,那么我如何检测它是否存在?答:遍历链表,看起来面试官并不满意,我继续说:对于一个自定义类,需要依次检测hashcode、用instanceof检测是否是同一个类、判断引用地址和各项数据是否值相等,看起来面试官还不满意,我说判断hashcode()和equals(),似乎到面试官的点上了;
-
hashmap为什么线程安全吗?多线程同时resize()会怎么样?答:想说sorry,但是是在不好意思了,硬着头皮分析了一波,说了一个可能的结果,面试官追问,又说了一个,不知道对不对,面试官没表态;
-
hashmap多线程环形链表是怎么形成的,具体说说。答:sorry
-
哪种hashmap是线程安全的?答:hashtable和concurrenthashmap,追问:说说他们的区别
-
追问:你提到加锁,具体锁住哪块?答:此时已经在高强度的折磨下神志不清了,想说sorry,但是忍住了,胡言乱语了几句
-
你说到synchronized和lock,说说他们的区别?追问synchronized为什么要升级锁,追问lock底层用什么实现
-
看你项目用了redis,做什么用?答:缓存,你项目用了哪种redis数据结构,答:sorry,不知道,不是我写的,但是我可以说说redis的基本数据类型,然后说了一下基本数据类型
-
redis相比于mysql为什么快?答:内存数据库,没有磁盘加载到内存这一步,所以快,追问:还有呢?答:IO多路复用,追问:说说IO多路复用?从BIO到NIO再说到IO多路复用,追问:linux IO多路复用具体有哪几种函数:select、poll、epoll
-
说说mysql ACID特性
-
现在银行转账,事务完成了,然后系统断电了,咋办?说了redo_log恢复机制,以及因刷盘时机导致的数据丢失问题
-
你提到事务,分布式事务如何保证一致性?答:sorry
反问:
部门干什么?面试官耐心的进行了解答,没有听明白。大概意思就是部门处于起步阶段,万物复苏,百废待兴。能感觉到压力还是很大的,大晚上8点半不走还面试homie
听说蚂蚁系没有hc了,是KPI面吗?刚被蚂蚁另一个部门伤害过 答:不是,大家时间都很宝贵,不会浪费彼此的时间,这周出结果。
总结:
阿里系真的非常注重对源码的理解,和对知识的融会贯通,那些场景题,你背八股是答不上来的。
可以看的出来面试官很有水平,他好似那个transformer,谁来干谁,我随口说一个东西,都能对我发起灵魂拷问;
感觉面试收获非常大,感觉到了特别多不足的地方,上次这种收获满满的感觉还是在上一个蚂蚁的部门才感受到,大家可以看看我的系列面经,这个和上一次蚂蚁那个面试真的可以说收获了很多东西,不像其他几次面试一样收获不大。
---------------------------------
已经凉了