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。