前言
金九银十马上就要来了,置信不少Java程序员敌人们在网上搜寻过BAT面经,以便可能失去一些教训,明天我也来给大家分享一下蚂蚁金服金融外围部门的面试经验,心愿可能帮忙到正在筹备面试的你!废话不多说,间接上注释吧。
一面(个人感觉答复得还不错)
1. 自我介绍
2. 说我的项目,我的项目问的十分深(自己提到之前做过的一篇对于FULL GC的问题定位和优化的我的项目以及一个多并发的我的项目)
对于本人产于过我的项目的零碎定位是否分明?
对于零碎的各个模块是否分明?
每个接口的tps?
对于上下游零碎的依赖?
对于应用到的中间件、框架是否分明?
3. 你感觉你做的我的项目中最有亮点的事件?
4. memcache redis同类两头的差别、优缺点?应用留神点有哪些?
memcache能够存储的数据类型只有字符串类型,而redis能够存储字符,list,sorted List,hash数据类型的数据;
memcache不反对数据长久化,redis反对RDB,AOF长久化;
memcache不反对集群,redis反对redis-cluster集群
5. redis分布式锁说说
我提到了redis的setnx()办法,以及应用redis的KV构造,lock作为key,key对应的value应用map构造,map中应用申请requestId作为map的key,过期工夫作为map的value,获取锁应用cas算法,比拟工夫是否过期来获取锁和开释锁
6. TCP,UDP
7. 多并发我的项目的并发量,有没有压测过,以及QPS,申请的音讯量太大,应用本人创立的工作队列会不会使内存爆?
8. Redis集群主从数据同步
主从集群实现了数据的读写拆散,主服务器负责读写,并重写,从服务器只负责读。主服务器启动之后向从服务器发送日志文件,从服务器依据日志文件进行数据的更新,之后如果主服务器有写操作,也会向从服务器发送相应的写操作
9. Zookeeper实现选举的原理
zk的选举过程中其起始所有结点的状态为looking,当某个结点的选票超过所有结点数的一半,该结点就会成为leader,结点状态为leading,其余结点会成为followers,结点状态为following。选举的根据是(sid,zxid)数据,sid代表结点的ID,zxid代表事务ID,选举过程中每个结点第一轮选举会选举本人作为leader,将(sid,zxid)发送给其余结点,其余结点收到数据(sid,zxid)与本身的数据做比拟,如果zxid比本身zxid的要大,则间接选举以后结点;如果小于,保持选举本人;如果zxid相等,比拟sid哪个大,大者作为leader。
10. 说说分布式(我说的是Dubbo)
11. 数据库事务,分布式数据一致性如何实现?
读者能够理解一下ZAB协定,我大略就是围着ZAB协定说的
12. SpringIOC,SpringAOP
我简略说了说IOC,AOP的原理,以及原理依赖的模式
13. 数据库事务的隔离级别
四大隔离界别:Uncommitted-read Commited-read Repeated-read Serializable别离针对数据库脏读,不可反复读,虚读问题
14. 谈谈RPC
RPC近程调用,说了说原理,应用到的组件,以及RPC次要的工作:序列化,传输数据,办法调用(办法对应的ID)
15. 算法题:口试题-最短门路问题(这道题是通过的)
如图,某物流派送员p,须要给a、b、c、d4个快递点派送包裹,请问派送员须要抉择什么的路线,能力实现最短途程的派送。假如如图派送员的终点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的间隔就是4。随机输出n个派送点坐标,求输入最短派送路线值(从终点开始实现n个点派送并回到起始点的间隔)。
我的做法是应用排列算法,将所有的状况排列进去,计算最短门路
二面(个人感觉答复的特地垃圾,六道问题答复了两道)
1. 自我介绍
2. 怼我的项目,各个角度刁难
3. FULL GC问题排查工具
我做我的项目时其实没有应用什么工具,就是用Linux命令TOP,TOP交互命令 1,H;jsatck,jstat以及JVM的相干参数和JVM日志的查看
4. 从事开发遇到最具备难度的问题
5. Spring事务,嵌套事务
这道题其实我是被问懵了,我答复得相当不好,始终答复事务隔离那一块,面试完我总结了一下无关Spring事务相干知识点
6. 面向接口编程的益处是什么
问的问题太形象,我答复不好,面试官说不够欠缺
7. 数据库两个insert同时操作同一张表,第一个线程操作一半,问第二个线程会产生什么?
我答复的稀巴烂,下来查了一下,大略就是说这里波及到的锁是间歇锁,读者能够看看相干常识
8. 说说死锁
举个例子,两个线程1和2,两个锁a和b,线程1拿到a锁后申请要b锁,而同时线程2曾经拿到b锁,要申请a锁,两个线程之间陷入僵持状态
总结
二面技术面之后,就是HR,这个就不多说了。整体蚂蚁金服的面试感触,面试官很业余,要求基础知识很相熟,面试之前肯定要筹备后再去面试。LeetCode题目也要刷。
切记面试前肯定要刷题和筹备,简历上的我的项目不相熟的千万不要写上去,写上去的我的项目备好2-3个技术计划。
最初
码字不易,感觉有帮忙的能够帮忙一键三连一下,让更多有须要的人看到
金九银十马上到了,在这里,我为各位筹备了一套Java程序员精选高频面试口试真题,来帮忙大家攻下BAT的offer,题目范畴从高级的Java根底到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考,须要的能够【点击此处】获取,上面为局部材料截图
因为篇幅起因就不一一展现了,须要的【点击此处】获取获取
发表回复