阿里一面凉经(答案更新ing)
阿里面经
为什么选择RabbitMq作为消息队列?
在若干种消息队列中,运行最快的应该是kafka,虽说rabbitMq的速度没kafka快,但是rabbitMq支持同步和异步收发消息,而且rabbitMq拥有五种队列模式,拥有更丰富的功能,所以选择RabbitMq。
为什么项目用mongodb存储文件不用mysql?
因为假设我们的app有很多用户,此时发送通知的消息就会有很多,同时消息关联的列记录也会很多,Mysql是无法支撑海量数据的存储的。所以我们选择MongoDB.
而且mongodb也特别适合存储信息之间没有关联的信息,不需要用到关系型数据库的信息。
Mysql为什么不能存储海量记录?
因为当Mysql数据表中单表超过2000w记录,mysql在执行增删改查的时候会特别慢。
MongoDB为什么能存储海量数据?
假如MongoDB内存不够存储了怎么办?
我们可以根据数据被使用的频率,划分成热数据冷数据,一年内的数据看成热数据,超过一年的数据就是冷数据。可以编写定时程序。每天凌晨把冷数据搬到另一个归档库mongodb_2
万一归档库也满了呢?
这个时候我们将归档库的数据看一下,若有超过3年以上的数据,我们认为是过期数据直接删除即可。
mongodb和mysql的区别是什么?
mongodb是Nosql(非关系型数据库),mysql是关系型数据库
mongodb适合应付写入操作频繁,存储价值较低的信息。
mysql适合存储关键的业务信息。
mongodb扩展性比mysql强,因为mysql需要一开始固定表结构,而mongodb可以随意更改文档的一些属性。
mongodb的数据是用类似Json的Bson存储的,适合存储文档格式的文件。
aop的原理你能给我讲一下吗?
几种方式做动态代理呢?
为什么通过动态代理就能实现拦截了?
AOP主要用于什么场景呢?
切面编程的好处是什么呢?
ioc的基本原理讲一下吧
假如ioc加载Bean对象,内存溢出了会有什么问题?
Mysql索引的原理
为什么Mysql索引不用B树呢?B树的劣势在哪里呢?
那他们有没有优缺点呢?B树哪个情景会好有一点,B+树哪个情景会好一点?还是B树就不如B+树
那我问你一下?Mysql索引其使用的就是B树你知道吗?(心脏骤停)
啊?
慢查询?
联合索引最左匹配
建索引的好处是啥?只是方便查询吗?
那建索引有没有什么劣势?
除了增加索引的维护成本还有什么劣势?索引本身对数据库会有什么缺陷吗?他对插入有影响没有(明显在引导我,但是我不懂)
SpringBoot和Spring的区别是什么?
除了自动装配还有什么区别?
此时面试官开始叹气了。。。
redis的基本数据类型你了解吗?
redis他为什么快呢?
redis只存到内存数据丢失怎么办呢?
快照是实时的吗?还是要触发呢?
那RDB和AOF之间的区别你说一下?各自的优势和劣势?
redis淘汰策略
JVM的内存模型?(听成JMM 寄!)
垃圾回收机制和垃圾回收算法一起讲一下吧
你觉得笔试题难吗?(??此时已经开摆)
linux你用的怎么样?(完了,我第一题linux awk都错了,当时忘记怎么用了)