开始记录面试
这里是小菜鸟写给自己看的面试记录~
day1
1.redis使用场景
答:最常用的就是缓存啦。然后有消息队列,在自己经历过的项目中其实是有用到的(ps:智慧空调的预约时间下发机制)。时间轴,例如微博那种,因为Redis中的list的数据结构实现的是双向链表,所以可以非常便捷的应用于消息队列(生产者/消费者模型)。消息的生产者只需要通过lpush将消息放入list,消费者可以通过rpop取出该消息,并且保证消息的有序性。排行榜,计数器等等。
2.jvm内存
答:方法区、堆区、栈区、PC寄存器、本地方法栈。
JVM被分为三个子系统:类加载器子系统、运行时数据区、执行引擎。
PC寄存器:每个线程都有一个单独的PC寄存器来保存当前执行指令的地址,一旦该指令被执行,pc寄存器会被更新至下条指令的地址。
本地方法栈:本地方法栈保存本地方法信息。对每一个线程,将创建一个单独的本地方法栈。
3.mysql调优
答:对经常需要查询的字段添加索引。
尽量避免使用子查询。
用in来替代or,避免函数索引。
LIKE前缀%号、双百分号、_下划线查询非索引列或*无法使用到索引,如果查询的是索引列则可以。
读取适当的记录LIMIT M,N,而不要读多余的记录。
避免读取随机数、禁止不必要的order by排序。
不要使用NOT等负向查询条件,B+树的查询会便利全表。
尽量不用select *。
4.spring常用类
这边先了解Bean的生命周期,查看此文章https://www.cnblogs.com/zrtqsk/p/3735273.html。