主页 > 游戏开发  > 

面试题总结

面试题总结
Mysql 聚簇索引和二级索引(非聚簇索引)

mysql创建索引的原则

mysql索引失效的场景

● 组合索引必须满足最左匹配原则 ● 字符串不加单引号 (会进行类型转换导致失效) ● 模块查询以%开头会导致失效 在结尾可以走索引 ● 在索引列上进行了范围查询 > < 右边的列是不走索引的 但是前面的列是走索引的

mysql事务特性

mysql隔离级别(并发事务问题 脏读 不可重复读 幻读) 默认可重复读

解决并发事务问题的办法就是事务隔离 读未提交 读已提交 可重复读 串行化 ● 脏读: 一个事务读取到了另外一个还没有提交的事务 ● 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读 ● 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,会幻读 比如第一次查询 没有数据 同时另一个事务提交了数据 再次查询有数据 就幻读

Spring框架 spring用到了那些设计模式

工厂模式: beanFactory就用到了简单工厂模式。 单例模式: Bean默认为单例模式。 代理模式: AOP用到了JDK的动态代理模式。 模板模式: 减少代码冗余,Jdbc模板等。 观察者模式: 定义对象间的一对多的关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。spring监听器的实现就用了观察者模式。 blog.csdn.net/zhzjn/article/details/143327633

Spring事务失效的场景

spring事务的传播行为

REQUIRED(默认):默认事务传播行为,存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。 REQUIRE_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。 NESTED:如果当前存在事务,就嵌套当前事务中去执行,如果当前没有事务,那么就新建一个事务,类似 REQUIRE_NEW这个样一个传播行为。 SUPPORTS:表示支持当前当前的事务,如果当前不存在事务,就以非事务的方式去执行。 NOT_SUPPORT: 总是非事务地执行,并挂起任何存在的事务。 MANDATORY:如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。 NEVER:就是以非事务的方式来执行,如果存在事务则抛出一个异常。

Spring中Bean的声明周期

bean: 是由 Spring IoC 容器实例化、组装和管理的对象。 单例模式: spring中bean的生命周期分为:实例化Bean->Bean属性填充->初始化Bean->销毁Bean。

Spring中的循环依赖(使用三级缓存解决)

SpringMvc执行流程

SpringBoot自动装配原理

深拷贝与浅拷贝

浅拷贝: 基本数据类型字段的拷贝:值被复制,新对象和原对象的字段在内存中是不同的 引用类型字段的拷贝:对于引用类型,它们的引用被复制,他们指向同一个内存空间,是同一份数据 深拷贝 在 Java 中是指创建一个新对象,同时递归地复制所有引用类型的字段,这样使得新对象完全独立于原对象。新对象的引用类型字段指向新的的内存空间,基本类型字段也是新的内存空间

深拷贝和浅拷贝的区别:深拷贝把给引用类型字段申请新的内存空间,并将原对象的数据复制到新的对象的空间中。浅拷贝只是引用赋值,还是指向同一内存空间 浅拷贝还要考虑 可变引用类型字段 和 不可变引用类型字段 浅拷贝可以实现Cloneable接口,重写clone 方法实现浅拷贝 深拷贝的浅拷贝的基本类型字段拷贝时,都会创建新的空间

Redis面试题 缓存穿透

去查redis里面没有查到数据 直接去查了DB–造成库的压力过大 优化:设置临时值 为null 或者加布隆过滤器

缓存击穿

redis里面单个key过期了 优化:使用互斥锁 第一个线程上锁 去查数据 再set 第二个线程就查到了(性能差)

缓存雪崩

redis里面大量key同时过期或者是redis宕机 优化:给不同的key设置不同的失效时间

redis与mysql数据一致性

延迟双删 删除缓存–>修改数据库–>延时500毫秒–>删除缓存(也会有脏数据风险)

Redis的持久化(建议两种模式都开启)

RDB(默认 恢复较快) 读取rdb文件里面的数据进行恢复 AOF 修改redis.conf文件里面的appendonly yes 开启 记录每次命令

Redis的过期策略(建议两种配合使用)

惰性删除 当key过期以后,还是存在redis里面占用着内存,每次获取的时候 如果key过期 再删除 定时删除(不占用内存) 每隔一段时间去检查redis里面过期的key 有两种模式slow/fast

标签:

面试题总结由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“面试题总结