阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

阿里中间件研发面经

研发工程师(Java)

我参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。这是我的面经,在这里分享给大家。

一面:

  1. 自我介绍
  2. 项目中做了什么,难点呢。
  3. Java的线程池说一下,各个参数的作用,如何进行的。
  4. Redis讲一下
  5. 分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。
  6. 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。
  7. kafka了解么,了解哪些消息队列。
  8. 想做业务还是研究。
  9. 然后出了一道题,linux的访问权限是rwx格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。给了一个多小时写题。

耗时将近30分钟。

二面:

  1. 介绍你做的项目和其中的难点。
  2. 上次面试官问的问题,反射的作用是什么。
  3. 数据仓库,多线程和并发工具等。
  4. 私有云,docker和k8s等。
  5. 了解哪些中间件,dubbo,rocketmq,mycat等。
  6. dubbo中的rpc如何实现。
  7. 自己实现rpc应该怎么做
  8. dubbo的服务注册与发现。
  9. 听说我是非科班,于是问了些排序算法

耗时将近30分钟。

三面:

三面不是面试,而是笔试,耗时三个小时,考的是Java核心的基础。但是好像不能透题,就不说了。都挺有难度的。

大概说一下就是有几个考点,Java并发的知识点,集合类,线程池,多线程之间的通信等。

HR面:

聊人生谈理想,HR小姐姐非常温柔,交流十分愉快。30分钟。

阿里三岗面经,带给Java程序员冬日的炭火

蚂蚁金服研发面经

蚂蚁金服中间件

蚂蚁财富

研发工程师

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

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

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

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

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

蚂蚁金服中间件一号机

一面:

  1. 自我介绍
  2. Java中的多线程了解么,线程池的增长策略和拒绝策略了解么,说一下。
  3. 讲一下线程增加的过程和拒绝策略的执行。(讲了一下fixthreadpool的增长策略,然后几种拒绝策略)
  4. 高并发情况下,如何使用线程池,用哪个,问了一下线程结束要多久,是否在下一个线程结束前完成(我想的是cachethreadpool,其实思路错了。表示并发量比较大,所以我说可以考虑并发量是否大于队列长度加上最大线程数量和,如果不超过的话可以是用fixthreadpool)
  5. 并发juc了解么,有哪些线程安全的list。(说了个copyonwritelist,想了半天说不出第二个了。尴尬,那就vector把,不是juc里的。貌似并发包里确实没有其他list啊。还问了concurrenthashmap1.8的改动)
  6. HTTP协议了解么,和tcp有什么区别。
  7. http1.0和2.0的区别。(答了TCP连接复用,加入ssl,以及压缩请求头。其中哪个更新比较有意义,为什么。我说的是压缩请求头,这样可以优化HTTP服务的性能)
  8. Java的网络编程,比如NIO和Socket了解么。
  9. 说下BIO和NIO的区别把。(我说了BIO的阻塞用法,以及NIO的IO多路复用用法,说了selector,seletedkey,channel等类的使用流程,以及单线程处理连接,多线程处理IO请求的好处)
  10. 说一下NIO的类库或框架

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

  • channelhandler负责请求就绪时的io响应。
  • bytebuf支持零拷贝,通过逻辑buff合并实际buff。
  • eventloop线程组负责实现线程池,任务队列里就是io请求任务,类似线程池调度执行。
  • 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个华科的,校友多多。

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

阿里三岗面经,带给Java程序员冬日的炭火

蚂蚁金服中间件二号机

一面:

  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. 有什么想问
阿里三岗面经,带给Java程序员冬日的炭火

蚂蚁财富事业部

一面:

  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. 为什么想来我们部门

以上都是一些面试时记录下的问题,包含一些自己的见解,仅供大家参考。

需要面试题及答案的话可以关注一下我,私信“资料”即可获取。

其实,为了长足稳定的 职业技术发展,单纯的为了应付面试是肯定不行的,需要具备自己的核心竞争力,有一套自己完善的技术知识体系。下面就是一套完整的Java进阶技术思维路线图,有需要学习的朋友们可以收藏。

阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

阿里三岗面经,带给Java程序员冬日的炭火

最后

如果你对技术提升很感兴趣,可以加入Java进阶之路来交流学习:878249276,里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用”没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

感谢您访问:生涯设计公益网!本文永久链接:https://www.16175.com/17244.html。侵删或不良信息举报请联系邮箱:121488412@qq.com或微信:aban618。
(0)

相关推荐

  • 分享建行IT类面试经历

    以下是我参加建行总行面试的经历,希望对大家又借鉴的作用。  整个面试过程分两轮,专业技术面和人力资源面。   专业技术面是个中心自行组织的,一般是以中心主任为首加各处室领导或者骨干…

    2022年5月22日
    167
  • HR问上家薪资,到底该不该说实话?

    面试犹如宫斗,步步惊心,一不小心就踩上HR的套路,比如HR漫不经心的一问:你的上家薪资,能说说嘛? 此时你可得打起十二分的精神,毕竟问题的答案将直接和你的薪资挂钩。好多人犹豫,说实…

    2022年5月21日
    376
  • 薪水和工作,哪个对你更重要?

       问题:薪水和工作,哪个对你更重要?    回答:两者对我都很重要。因为薪水可以解决个人生存问题,是生活条件基本需要,工作是为了发展自己的能力。点评:此题是非A即B题,如果你希…

    2022年5月21日
    509
  • 个人面试放公司鸽子已不是个别现象

        最近有HR网友吐槽:“公司招人,约了十个人来面试,结果只有一个人来。面个试还能玩人间蒸发?那为何约面试时说自己会准时到?”    其实个人面试放公司鸽子已不是个别…

    2022年5月16日
    241
  • 五百强八大行业面试招聘流程:银行业

    银行业  一.招聘毕业生的银行主要有如下五类:   1. 四大商业银行总行(工、农、中、建);  2. 三大政策性银行(国家进出口银行、国家开发银行、农业发展银行);   3. 城…

    2022年5月22日
    196
  • 英语面试的5大秘诀

      Be professional.   Looking businesslike is the first step to acting businesslike, and pe…

    2022年5月25日
    359
分享本页
返回顶部