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

两个技术面试官、面试内容还是挺全面,阿里关注点高并发、高可用系统设计
与 大数据在业务中使用
,具体知识点:
高并发、高可用系统设计
关注点和美团很像
-> 项目介绍
* 要有特色,抓住面试
-> 算法(这次电话面试未考,现场面试应该会随时考)
* 基础数据结构要会(经典教材,博客和多写)
* 算法要会(看,练经典教材,博客。刷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技术栈简历

阿里面试具体内容
* 请自我介绍:主要关注技术栈、项目?
问项目细节,
如: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到。
技术交流请入群,进群说明为何添加?

网友评论