蚂蚁金服研发面经

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702438 蚂蚁金服研发面经 本文首发于微信公众号:程序员江湖 蚂蚁金服中间件 蚂蚁财富 研发工程师     之前面了阿里中间件的提前批,不过没走流程。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702438

蚂蚁金服研发面经

蚂蚁金服中间件

蚂蚁财富

研发工程师

    之前面了阿里中间件的提前批,不过没走流程。同期还面了蚂蚁中间件的两轮面试,被告知不走流程就不能面了,所以也没面完。

    后来走了蚂蚁金服财富事业群这边的流程。前几天刚刚面完HR。

    正好今天分享一下面经,大家可以多交流交流哈。

1:蚂蚁中间件(面了三次,两次一面,一次二面)

2:蚂蚁财富(1+2+交叉+HR)

1一面

蚂蚁金服中间件一号机

一面:

自我介绍

1Java中的多线程了解么,线程池的增长策略和拒绝策略了解么,说一下。

2讲一下线程增加的过程和拒绝策略的执行。

3讲了一下fixthreadpool的增长策略,然后几种拒绝策略。

4高并发情况下,如何使用线程池,用哪个,问了一下线程结束要多久,是否在下一个线程结束前完成(我想的是cachethreadpool,其实思路错了)。

5表示并发量比较大,所以我说可以考虑并发量是否大于队列长度加上最大线程数量和,如果不超过的话可以是用fixthreadpool。

6并发juc了解么,有哪些线程安全的list。说了个copyonwritelist,想了半天说不出第二个了。尴尬,那就vector把,不是juc里的。

貌似并发包里确实没有其他list啊。

还问了concurrenthashmap1.8的改动。

7HTTP协议了解么,和tcp有什么区别。

8http1.0和2.0的区别。

答了TCP连接复用,加入ssl,以及压缩请求头。

其中哪个更新比较有意义,为什么。我说的是压缩请求头,这样可以优化HTTP服务的性能。

9Java的网络编程,比如NIO和Socket了解么。

说下BIO和NIO的区别把。

我说了BIO的阻塞用法,以及NIO的IO多路复用用法,说了selector,seletedkey,channel等类的使用流程,以及单线程处理连接,多线程处理IO请求的好处。

10说一下NIO的类库或框架

讲了netty,写过服务端和客户端的demo,没有在生产中实践。

1 channelhandler负责请求就绪时的io响应。

2 bytebuf支持零拷贝,通过逻辑buff合并实际buff。

3 eventloop线程组负责实现线程池,任务队列里就是io请求任务,类似线程池调度执行。

4 acceptor接收线程负责接收tcp请求,并且注册任务到队列里。

11倒排索引了解么,我说不了解。

其实就是搜索引擎的基础索引,根据关键字到文档的映射关系建立索引,中文关键字可以使用中文分词,查询时通过关键字来定位索引,并且进行排序后得到文档结果集。

然后面试官说讲一下数据库把,说下sql优化的方式

我说的是MySQL,先讲了一下sql使用索引的优化,然后基于索引说了几条优化方案。

12索引什么时候会失效变成全表扫描

说了联合索引的前缀匹配,跳跃索引,聚合函数,判空和<>这些情况。

13分布式的paxos和raft算法了解么

了解过,但是讲不清楚。

paxos:多个proposer发请提议(每个提议有id+value),acceptor接受最新id的提议并把之前保留的提议返回。当超过半数的accetor返回某个提议时,此时要求value修改为propeser历史上最大值,propeser认为可以接受该提议,于是广播给每个acceptor,acceptor发现该提议和自己保存的一致,于是接受该提议并且learner同步该提议。

raft:raft要求每个节点有一个选主的时间间隔,每过一个时间间隔向master发送心跳包,当心跳失败,该节点重新发起选主,当过半节点响应时则该节点当选主机,广播状态,然后以后继续下一轮选主。

14中间件知道哪些,阿里的dubbo,rocketmq的事务消息,问了TCC回答说这个之前没看明白。

说了mycat实现分表分库,消息队列kafka和rabbitmq等。

15平时看什么书,怎么学习的。还跟我说他们部门3个华科的,校友多多。

16Spring和Springmvc讲一下。讲了Spring的ioc和aop,Springmvc的基本架构,请求流程。

蚂蚁金服中间件二号机

一面:

1 自我介绍

2 讲一下ArrayList和linkedlist的区别,ArrayList的扩容方式,扩容时机。

3 hashmap的实现。

4 NIO了解么,讲一下和BIO的区别,AIO呢。阻塞,非阻塞,异步。具体。

5 你说了解分布式服务,那么你怎么理解分布式服务。

6 你说了解Tomcat的基本原理,了解的是哪一部分,基本架构,connector和container

7 你在项目中怎么用到并发的

8 docker和虚拟机讲一下。

9 有啥想问的

蚂蚁金服中间件二面

1 项目

2 说一下Spring源码把,它的架构,流程。

3 Spring的bean如果要在实例化过程中修改其某一个成员变量,应该怎么做呢。不通过构造方法,并且AOP也并不能实现。

4 Tomcat的类加载器了解么,回答不了解只了解Java的类加载器。

5 自定义类加载器怎么实现,其中哪个方法走双亲委派模型,哪个不走,不走的话怎么加载类(实现findclass方法,一般用defineclass加载外部类),如何才能不走双亲委派。(重写loadclass方法)

6 布隆过滤器了解么,讲了ip地址过滤的布隆过滤器实现。

7 听说你项目用过docker,讲一下docker的实现原理,说了虚拟机一般要对内核进行虚拟化,docker则用cgroup和namespace分别进行硬件和命名空间的隔离。

8 项目中遇到的最大挑战。

9 项目中学到最多的东西

10 有什么想问

蚂蚁财富事业部

一面:

1 亿级ip地址过滤

2 排序算法和适用场景

3 数据库的事务有什么用

4 数据库的悲观锁和乐观锁

5 数据的索引有什么用,怎么实现

6 联合索引的匹配原则

7 数据库万级变成亿级,怎么处理。分库分表,分片规则hash和取余数。使用mycat中间件实现。

8 redis这种nosql和mysql有什么区别,讲了一遍redis

9 Spring了解不,用到了哪些设计模式,说了四个,单例,工厂,代理,观察者,模板其实也算。

10 web请求的过程,讲了浏览器到http服务器的过程,再讲了mvc的请求处理过程。

11 你的职业规划

12 没了。

二面:

没有二面,好像说是跳过了一轮,直接技术主管面。

三面:

1 项目中的多线程,为什么用chm,还有什么可以避免并发问题。

2 平时在看什么,写什么博客,我说分布式,关注什么内容,大后端,Hadoop生态。

3 dubbo了解么

4 dubbo的基本架构,几个组件说一下

5 服务生产者和消费者怎么进行rpc调用

6 怎么进行服务注册发现 zk实现具体说说

7 dubbo的负载均衡怎么做,讲一下具体代码实现。

8 dubbo的服务容错怎么做,怎么知道服务器宕机了 zk的心跳机制维持服务器连接

9 好了我要问的差不多啦。

交叉面:

隔壁部门的技术主管,问了一道算法题。。就没问别的了。。我也是很醉。。。

题目是链表的排序,扯了4、5种方案,转成数组,直接排序,拆分再排序,顺序连接等等。。然后我表示不能再优化了。他就说没别的问题了。。。有点吃惊。

HR面:

1 兴趣爱好

2 三年到五年的职业规划

3 意向公司和城市

4 实习经历和收获

5 实习中最大的困难

6 为什么换公司,为什么拒绝菜鸟实习offer

7 你的缺点和优点

8 你觉得你比其他人优秀的地方说三个

9 为什么想来我们部门

10 巴拉巴拉

微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 


                     

相关文章
|
6月前
|
存储 SQL 算法
字节跳动大数据研发岗位面试题目
字节跳动大数据研发岗位面试题目
62 0
|
监控 算法 搜索推荐
我在阿里做测开
如何转型测试开发
|
Kubernetes 算法 Cloud Native
校招生值得去阿里淘系做技术吗?
校招生值得去阿里淘系做技术吗?
校招生值得去阿里淘系做技术吗?
|
机器学习/深度学习 设计模式 JavaScript
2021阿里淘系工程师推荐书单
读书有点像机器学习从初始参数开始的局部最小化。 无论是数学、科学、技术、管理,还是历史、文学,读书的过程,就是根据一维的文字流,在立体的思维空间中重新建构。 这种建构的意义,将我们自身和世界连接了起来。 (阿里巴巴淘系技术部资深算法专家 乐田)
2021阿里淘系工程师推荐书单
|
运维 Kubernetes Cloud Native
首届云原生编程挑战赛精彩盘点:他们如何从10000多支团队中脱颖而出?
从大赛中发掘新鲜的技术力量,让云原生技术激发更多企业的生命力。
1033 2
首届云原生编程挑战赛精彩盘点:他们如何从10000多支团队中脱颖而出?
|
移动开发 缓存 前端开发
阿里高级技术专家:成长路上如何破局?
自小喜欢计算机,高考却落榜心爱的计算机系,如何圆梦?校招进入阿里开局不利,如何在边缘业务中突破成长?业务不断发展、技术不断更新,如何调整自己跟上变化的脚步?本文分享阿里高级技术专家圣司(张舒迪)在阿里的成长之路,分享他进入互联网行业、成为一名前端开发道路上的那些转折点和“弯路”,以及体会和感悟,希望能为同学们带来启发。
9291 1
阿里高级技术专家:成长路上如何破局?
|
Web App开发 存储 移动开发
思考、创新、坚持——阿里做了七年前端,我的成长经验分享
在成长的未知道路上,我们总会遇到各种各样的问题,但是,所有的迷茫与逆境都能够帮助我们成长,我们要抓住每一个机会让自己进步,而不是徘徊不前。 淘系前端开发同学——林晚,今天就来和大家分享他这七年的成长经历,以及如何摆脱业务前端的职业迷茫感。
2977 0
思考、创新、坚持——阿里做了七年前端,我的成长经验分享
|
Java 开发者
【Java开发者专场】阿里专家墨玖:淘票票工程师文化
谈到工程师文化,大家都会比较熟悉,或者比较向往。但是到底什么是工程师文化,应该怎么做是互联网企业应该关注的东西。本文将从四个部分介绍工程师文化,首先,工程师文化从何而来?其次,我们为什么需要工程师文化?还有工程师文化要达到什么目标,走向哪里?最后,工程师文化实施手段有哪些,怎么样落地?
3289 0
|
JavaScript 前端开发 架构师
阿里巴巴2018秋招总结
一面 电话面(1小时) 电话面问题不多,但是十分考验对相关知识熟悉程度,面试官是 P7(不理解这个就去百度吧) 推荐一个交流学习群,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。
1887 0
|
Java 应用服务中间件 UED
阿里巴巴高级技术专家聊工程师思维
本文整理自至简在团队内部的个人分享,希望通过对工程师思维的分析和解读,让工程师能正确对待那些在现实工作中看上去与本职岗位无关,却对团队效能影响极大的一些点和一些事。
991 0