原文链接:
https://blog.csdn.net/SpringJavaMyBatis/article/details/83415696
阿里技术面试回顾:
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+树的叶子节点通过指针连起来了, 适合扫描区间和顺序查找。
BATJ面试题目
以下列举22个视频资料。
1,应该怎么封装简历才有BATJ面试机会?
2,HashMap底层执行原理,
3,hashtable和ConcurrentHashMap如何实现线程安全?
4,jvm的内存布局,垃圾回收机制
5,类加载机制里的,双亲委派模型
6,阐述事务的隔离级别和传播属性
7,高并发下,如何做到安全的修改同一行数据?
8,A服务调用B服务多接口,响应时间最短方案;
9,A系统给B系统转100块钱,如何实现?
10,动态代理的几种实现方式及优缺点
11,多线程下读概率远远大于写概率,如何解决并发问题?
12,按线程池内部机制,当提交新任务时,有哪些异常要考虑?
13,@Transaction注解一般写在什么位置?如何控制其回滚?
14,说说Spring的IOC容器初始化流程?
15,说说springboot启动机制
16,Redis高性能的原因大概可以讲一些?
17,你是怎么控制缓存的更新?(被动方式/主动方式/增量/全量)?
18,浅析Http和https的三次握手有什么区别。
19,谈谈Session/cookie机制,如何实现会话跟踪?
20,什么是一致性hash?
21,MQ有可能发生重复消费,如何避免,如何做到幂等?
22,如何做限流策略,令牌桶和漏斗算法的使用场景?