2018最新蚂蚁金服面试题:Docker+秒杀设计+RocketMQ+亿级数据设计
一面:
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。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用容器的正确方式,Docker在雪球的技术实践
雪球目前拥有一千多个容器,项目数量大概有一百多个,规模并不是很大。但是得益于容器技术,雪球部署的效率非常高,雪球的开发人员只有几十个,但是每个月的发布次数高达两千多次。 2018 年 5 月 18-19 日,由 51CTO 主办的全球软件与运维技术峰会在北京召开。在“开源与容器技术”分会场,雪球 SRE 工程师董明鑫带来了《容器技术在雪球的实践》的主题分享。 本文主要分为如下三个方面跟大家分享雪球在业务中引入和使用容器技术的心路历程: ● 为什么要引入 Docker ● Docker 在雪球的技术实践 ● 后续演进 雪球是一个投资者交流的社区,用户可以在上面买卖股票,代销基金等各种金融衍生业务,同时也可以通过雪盈证券来进行沪、深、港、美股的交易。 为什么要引入 Docker 随着业务的发展,不同的社区业务之间所受到影响的概率正在逐渐升高,因此我们希望各个业务之间既能够不被打扰,又能在资源上、机器间、甚至网络上根据监管的要求予以不同层面的隔离。 早在 2014 年时,我们就发现容器技术具有本身镜像小、灵活、启动速度快等特点,而且在性能上比较适合于我们当时物理机不多的规模环境。 相比而言,...
- 下一篇
使用ECS控制台异步续费实例
背景: 过去ECS控制台同时续费实例的最大数量为70个,这已经无法满足很多用户的续费需求。 目前我们已经提供了异步续费的形式,单次操作支持续费100个实例,并合并支付续费订单。未来将会陆续开放至单次续费500台实例。 使用步骤 当前您在ECS控制台选择70台以上实例时,会自动转为续费任务。 如果提示错误,请联系客服了解异步续费任务灰度开放的范围。 具体操作步骤: 1、控制台选择要续费的实例,点屏幕下方的续费。您可以在下方找到调整每页显示数量的按钮。2、查看要续费的实例,调整您合适的续费时间,点击交异步任务,将生成异步taskId。3、任务管理界面可以看到订单的生成进度。您可以在右上角刷新任务进度,直到任务进度到达100%。4、任务完成可以看到每个订单价格,并进行合并支付。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6