拒掉菜鸟offer之后,5面阿里蚂蚁金服(Java面经分享)
蚂蚁金服中间件二号机
一面:
-
自我介绍
-
讲一下ArrayList和linkedlist的区别,ArrayList的扩容方式,扩容时机。
-
hashmap的实现。
-
NIO了解么,讲一下和BIO的区别,AIO呢。阻塞,非阻塞,异步。具体。
-
你说了解分布式服务,那么你怎么理解分布式服务。
-
你说了解Tomcat的基本原理,了解的是哪一部分,基本架构,connector和container
-
你在项目中怎么用到并发的
-
docker和虚拟机讲一下。
-
有啥想问的
二面:
-
项目
-
说一下Spring源码把,它的架构,流程。
-
Spring的bean如果要在实例化过程中修改其某一个成员变量,应该怎么做呢。不通过构造方法,并且AOP也并不能实现。
-
Tomcat的类加载器了解么,回答不了解只了解Java的类加载器。
-
自定义类加载器怎么实现,其中哪个方法走双亲委派模型,哪个不走,不走的话怎么加载类(实现findclass方法,一般用defineclass加载外部类),如何才能不走双亲委派。(重写loadclass方法)
-
布隆过滤器了解么,讲了ip地址过滤的布隆过滤器实现。
-
听说你项目用过docker,讲一下docker的实现原理,说了虚拟机一般要对内核进行虚拟化,docker则用cgroup和namespace分别进行硬件和命名空间的隔离。
-
项目中遇到的最大挑战。
-
项目中学到最多的东西
-
有什么想问
蚂蚁财富面经(1+2+交叉+HR)
跟这边的部门主管说了一下之前面试的情况,然后他帮忙催了下进度。
一面:
-
亿级ip地址过滤
-
排序算法和适用场景
-
数据库的事务有什么用
-
数据库的悲观锁和乐观锁
-
数据的索引有什么用,怎么实现
-
联合索引的匹配原则
-
数据库万级变成亿级,怎么处理。分库分表,分片规则hash和取余数。使用mycat中间件实现。
-
redis这种nosql和mysql有什么区别,讲了一遍redis
-
Spring了解不,用到了哪些设计模式,说了四个,单例,工厂,代理,观察者,模板其实也算。
-
web请求的过程,讲了浏览器到http服务器的过程,再讲了mvc的请求处理过程。
-
你的职业规划
二面:
没有二面,好像说是跳过了一轮,直接技术主管面。
三面:
-
项目中的多线程,为什么用chm,还有什么可以避免并发问题。
-
平时在看什么,写什么博客,我说分布式,关注什么内容,大后端,Hadoop生态。
-
dubbo了解么
-
dubbo的基本架构,几个组件说一下
-
服务生产者和消费者怎么进行rpc调用
-
怎么进行服务注册发现 zk实现具体说说
-
dubbo的负载均衡怎么做,讲一下具体代码实现。
-
dubbo的服务容错怎么做,怎么知道服务器宕机了 zk的心跳机制维持服务器连接
-
好了我要问的差不多啦。
交叉面:
隔壁部门的技术主管,问了一道算法题。。就没问别的了。。我也是很醉。。。
题目是链表的排序,扯了4、5种方案,转成数组,直接排序,拆分再排序,顺序连接等等。。然后我表示不能再优化了。他就说没别的问题了。。。有点吃惊
HR面:
-
兴趣爱好
-
三年到五年的职业规划
-
意向公司和城市
-
实习经历和收获
-
实习中最大的困难
-
为什么换公司,为什么拒绝菜鸟实习offer
-
你的缺点和优点
-
你觉得你比其他人优秀的地方说三个
-
为什么想来我们部门
-
巴拉巴拉
最后
分享一些我的学习笔记和整理的一份JAVA核心知识点(JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,网络,Zookeeper,Kafka,RabbitMQ,MongoDB,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存)
注意注意:需要我在文章分享的这些资料的朋友点击这里免费领取,小编会一一回复大家的哦~
JAVA架构专题面试知识点(含解析)+JAVA学习书籍资料