美文网首页java jvmJava技术问答
【面试】-阿里之蚂蚁金服-面试及需要的知识点-2018-04-1

【面试】-阿里之蚂蚁金服-面试及需要的知识点-2018-04-1

作者: cd13856c86e2 | 来源:发表于2018-04-16 06:47 被阅读1247次

    阿里的面试,推了两次,今天(2018.04.13) 第三次 进行了面试,时间:15:55-17:05(一个小时左右)

    image.png

    两个技术面试官、面试内容还是挺全面,阿里关注点高并发、高可用系统设计大数据在业务中使用,具体知识点:

    高并发、高可用系统设计

    关注点和美团很像

    -> 项目介绍
       * 要有特色,抓住面试
    
    -> 算法(这次电话面试未考,现场面试应该会随时考)
       * 基础数据结构要会(经典教材,博客和多写)
       * 算法要会(看,练经典教材,博客。刷leetcode) -- 短板
    
    -> Cache(Redis& memcached)
        * Redis
        * memcached
    
    -> Java相关技术栈
        >【Java基础】
        * collection相关(集合框架)
        * concurrent相关(并发)
        * BIO/NIO/AIO,Socket相关
        * JVM相关(ClassLoader过程、JMM、垃圾收集、错误排查和分析、JVM调优等)
    
        > 【框架】
         * Spring / SpringMVC / Mybatis / Spring Boot  / Spring Cloud
         * Dubbo + Zookeeper
         
         > 【Server】
         * Tomcat原理和源码
    
    -> MQ
        * 常用MQ,MQ特性,各种场景使用,原理及源码
        * ActiveMQ, RabbitMQ, Kafka
    
    -> 搜索引擎(ES & Solr)
        * Search Engine的使用
        * 特性和实现原理
        * 源码等
    
    -> RDB(MySQL&Oracle&PG) : 虽然阿里倡导去IOE,但是在部分极其核心系统还是有在用IOE。
    
        > 【MySQL】
        * 索引:B+树、索引、索引覆盖、慢查询或数据库服务器排查
    
        * 事务:事务特性(ACID)、事务隔离级别、结合Spring问事务实现、事务传播特性等
    
        * 锁:乐观锁^悲观锁、共享锁(S)^独占锁(X)、表锁^页锁^间隙锁^行锁等及内部具体实现(MVCC等),业务中怎么写。
    
        * 分片(sharding): 水平切分^垂直切分、分库^分表(取余、范围、日期等)、中间件(cobar、mycat、TiDB等)
    
        * 集群及高可用:M-M/M-S等等、及同步过程、数据增量同步(cannel)、常见方案。
    
        * 数据迁移及容灾:多地多活等。
    
    
    
    -> Linux知识(未考)
        * Shell    
        * 常见命令,服务器性能排查命令等
        
    -> 系统设计 & 设计模式
        * 结合设计模式问框架源码等
        * 结合系统设计
        * 给场景进行设计
    
    -> NoSQL(MongoDB & Hbase等)
        * MongoDB 特性
    
    -> 分布式知识及原理
        * CAP、BASE、两阶段、三阶段提交、一致性Hash、paxos算法、ZAB算法等等
        * TCC分布式事务等    
    
    -> 容器化(未问)
        * Docker
        * K8Vs
        * 底层如何实现资源隔离和扩展原理
    
    

    加分项:其他语言和使用经验

    1. python 
    2. JS全栈(页面JS & NodeJS)
    3. kitlon(全面兼容java)
    4. Go、Scala 
    5. C&CPP:在学习一些底层源码和基础,及底层开发。
    
    

    大数据在业务中使用

    -> Hadoop(HDFS,MapReduce)使用和原理
    
    -> Hadoop生态圈
    
    -> Spark生态圈
    
    -> Storm生态圈
    
    

    AI的使用

    数学是短板,只知道常规的10中数据挖掘算法,这块比较欠缺。
    
    需要概率、统计;数学分析、高数、数论等等数学知识,并且长年看国际一流学校、一流会议和期刊的积淀。
    
    不是短时间可以学会的。
    
    

    加分项:

    懂业务和场景,站在产品、运营或者更高的层面思考

    Java技术栈简历

    image.png

    阿里面试具体内容

    * 请自我介绍:主要关注技术栈、项目?
      问项目细节,
      如:Cache/Server/DB如何实现扣减库存/如何保证事务等
      Nginx动静分离如何做?
      Nginx负载均衡如何做?
    
    > 【Spring】
    * Spring你熟悉吧?介绍下Spring事务是如何做的?你在项目中是如何写代码实现的?
    
    > 【系统设计】
    *  多线程模型清楚么?能不能说说单线程和多线程模型?
    
    *  如果让你设计一个tomcat,你会怎么做?
    
    * BIO/NIO/AIO/Socket能否讲讲?
    
    
    >【大数据】
    * Hadoop看你使用过,请简单介绍你对Hadoop的理解?
    
    * HDFS的实现原理?MapReduce实现原理?如果让你设计一个HDFS分布式文件系统,你会怎么设计?
       => mapReduce想到了JDK8中的新特性。
    
    * MapReduce,Mapper-> Shuffle一般通过什么算法分配?
    
    * 刚才提到了YARN? 新版本有什么改善?如何实现的?
    
    * Spark用过么?能否讲讲Spark和Hadoop的区别与联系?
    
    >【搜索引擎】
    * 看你简历上写到有Solr和ElasticSearch的经验?能否简单介绍?
    
    * Solr/ES中,如果要变更一个Document的内容,可以如何做?
    
    * Solr/ES中,如何实现一个精确查找?如何实现模糊查找?
    
    * 搜索引擎的实现原理能否介绍?仅介绍Lucence原理即可?
      倒排索引等
    
    > 换面试官
    >【Cache】
    * 看你简历上写着有Redis和Memcached,请简单给我对比Redis和Memcached异同?特性和底层实现原理?
       => 简单讲了下区别,然后引导到Redis,把Redis所有特性和一些实现细节都讲了一遍。
    
    * Redis如何集群、集群中加入或者减少节点的实现原理?
    
    【非技术问题】
    > 听同事说,你最近在面试京东和美团,收获如何?美团也是很优秀的公司,为何还要来阿里?
    
    > 你最大的缺点有哪些?列举两项?
    
    > 项目中遇到的最大挑战是什么?
    
    > 如果遇到比较难沟通的同事/ 如果同事不配合你的工作,你如何解决问题?
    
    > 你简历中写了喜欢阅读开源项目和专研技术?你平时都上哪些网站,读哪些书?
       * 介绍了帮助比较大的书籍,Java相关,JVM相关,多线程相关、Cache相关,MySQL相关等等,以及各种技术博客。每个内容进行了收获和总结。
    
    
    > 你有什么要问的问题么?
       * 项目组介绍?
       * 项目组技术栈?
       * 下一轮面试时间?(由于下周要出去玩儿,告知了面试官)
       * 针对不同的角色(高级程序员/架构师;team Leader/boss),需要问不同的问题?
    
    

    总结:

    阿里的面试还算比较紧凑,难度比起普通互联网公司难,但还算能够Get到。

    技术交流请入群,进群说明为何添加?


    大宽宽的技术交流群

    相关文章

      网友评论

      本文标题:【面试】-阿里之蚂蚁金服-面试及需要的知识点-2018-04-1

      本文链接:https://www.haomeiwen.com/subject/wmshkftx.html