2018最新蚂蚁金服面试题:Docker+秒杀设计+RocketMQ+亿级数据设计

  1. 云栖社区>
  2. 博客>
  3. 正文

2018最新蚂蚁金服面试题:Docker+秒杀设计+RocketMQ+亿级数据设计

欧阳愠斐 2018-10-26 17:02:53 浏览5057
展开阅读全文

一面:

1 自我介绍

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

3 hashmap的实现,以及hashmap扩容底层实现。

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

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

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

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

8 docker和虚拟机讲一下。

9 高并发情况下,如何使用线程池

10 并发juc了解么,有哪些线程安全的list。

二面

1 项目

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

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

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

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

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

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

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

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

10 参与项目的挑战在哪里,有哪些收获。

三面

主要还是问中间件

1 阿里的dubbo,rocketmq的事务消息的架构设计

2 mycat实现分表分库方案实现

3 消息队列kafka和rabbitmq等

4 分库分表,分片规则hash和取余数。

5 数据库万级变成亿级,怎么处理

6 双11秒杀的设计思路

以上就是最新蚂蚁金服中间件团队面试题,以下是总结的阿里等java必考题范围和答案。

阿里技术面试回顾:

1.Java基础还是需要掌握牢固,重点会问HashMap等集合类,以及多线程、线程池等。

2.Java AIO BIO NIO等

3.Redis的使用以及最常问的一致hash算法,以及消息队列的异步场景等。

4.各种平时经常使用的开源框架Spring等,从原理到技术细节。

5.高并发场景的技术方案。

6.以及微服务等架构设计。

这些技术范围的面试题目还是需要平时多学习和积累,提前准备充分,面试通过率就会高很多,最后总结了部分阿里Java必考题目用于参考~

【阿里巴巴面试题目含答案】

1,mysql的三大引擎是啥?

mysql常用的引擎有InnoDB,MyISAM,Memory,默认是InnoDB

InnoDB:磁盘表,支持事务,支持行级锁,B+Tree索引

ps:优点: 具有良好的ACID特性。适用于高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。

缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。

mysql的4大特性+4种隔离级别:

MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree索引

ps: 优点:占用空间小,处理速度快(相对InnoDB来说)

缺点:不支持事务的完整性和并发性

MEMORY(Heap):内存表,不支持事务,表级锁,Hash索引,不支持Blob,Text大类型

ps: 优点:速度要求快的,临时数据

缺点:丢失以后,对项目整体没有或者负面影响不大的时候。

2,redis的hash算法用的是啥?

redis应该是使用一致性hash算法---MurmurHash3 算法,具有低碰撞率优点,google改进的版本cityhash也是redis中用到的哈希算法。

现有的主流的大数据系统都是用的 MurmurHash本身或者改进

3,nosql为啥比sql快?

Nosql是非关系型数据库,因为不需要满足关系数据库数据一致性等复杂特性所以速度快;

sql是关系型数据库,功能强大,但是效率上有瓶颈

4,什么是索引为啥nosql没索引?nosql有索引滴

索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

聚簇索引:有主键时,根据主键创建聚簇索引;没有主键时,会用一个唯一且不为空的索引列做为主键,成为此表的聚簇索引;如果以上两个都不满足那innodb自己创建一个虚拟的聚集索引

非聚簇索引:非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引

5,B+树和B树区别?

B树的非叶子节点存储实际记录的指针,而B+树的叶子节点存储实际记录的指针

B+树的叶子节点通过指针连起来了, 适合扫描区间和顺序查找。

了解最新的学习动态;了解最新的阿里、京东招聘资讯;获取更多的面试资料以及阿里架构师精讲资料及视频资源,欢迎加入Java进阶之路:878249276

网友评论

登录后评论
0/500
评论
欧阳愠斐
+ 关注