美文网首页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