摘要:
总所周知,Mysql中有四种隔离级别:读未提交、读已提交、可重复读、序列化。这四种隔离级别的产生来自于对于数据读取过程中的一些错误的解决。错误主要分为这三类:脏读、可重复读、幻读。 这里对脏读、可重复读、幻读做一下简单地概述: 脏读:读到了未提交的数据,这一般是在读未提交隔离级别下会出现的问题。 不 阅读全文
摘要:
循环依赖的概念 循环依赖简单的来说就是多个依赖相互引用,造成bean在相互诸如的时候出现死循环,为了解决这个问题,Spring提供了循环依赖的解决办法:利用三级缓存来解决 三级缓存适用前提 三级缓存也不是能够解决所有情况下的循环依赖,以下这些问题无法被循环依赖解决 在多实例化的情况下的bean,并且 阅读全文
摘要:
首先是安装redis,这个阶段没有什么问题,之后在redis启动的时候,由于安装路径不是在/usr/bin下启动,因此需要找到安装路径下的包含redis-server的路径下以`./redis-server 加上配置文件(本机的是 usr/local/redis/redis.conf)`方式启动,并 阅读全文
摘要:
概述 数据库的索引常见的有B树索引、B+树索引、哈希索引,接下来我们队B树索引和B+树索引做一些分析 B树索引 BTree结构 BTree又叫做多路平衡搜索树,一棵M叉BTree特性如下: 树中每个节点最多包含m个孩子 除根节点与叶子结点外,每个节点至少有[ceil(m/2)]个孩子 若根节点不是叶 阅读全文
摘要:
1. IOC中bean对象的使用以及模拟实例化过程 关于bean对象的实例化有以下三种方法: 构造器实例化(最常用) 静态工厂方法实例化 实例方法工厂实例化 我们以第一种方法介绍实例化的过程: 在创建的maven项目的基础上,为了实现一个简单地spring框架的功能,需要在pom文件中引入Sprin 阅读全文
摘要:
关于java的动态代理,有jdk动态代理和cglib动态代理。jdk动态代理是基于接口实现的,而CGlib动态代理是基于继承思想实现的,它能用于没有接口的目标对象的代理,这是jdk动态代理所不具备的功能。如果目标对象有接口实现,选择JDK代理,如果没有接口实现选择Cglib代理 JDK动态代理 具体 阅读全文
摘要:
高性能缓存项目 目标:从0开始迭代,手把手一步步设计并实现 概述 缓存的用处:缓存在实际生产中是非常重要的工具,有了缓存之后,我们可以避免重复计算,提高吞吐量 虽然缓存乍一看很简单,不就是一个Map吗?最初级的缓存确实可以用一个Map来实现,不过一个功能晚辈、性能强劲的缓存,需要考虑的店就非常多了, 阅读全文
摘要:
首先,我们需要明确:这么做是为了加快计算与减少哈希冲突 加快计算 首先如果拿到key后要去hashmap的内存地址中找到key所在的位置,那么需要进行hash(KEY) % 数组长度的操作,然而取余操作是很慢的,为了加快速度,我们将取余操作改成&(与)操作,能够大大提高计算的速度,但是为了保证替换成 阅读全文
摘要:
在整合mybati-plus和springboot写了一个测试类用来测试查询数据库中id为1的数据信息,但是在SpringBoot的测速类中报如下错误: 在查询了很多方法也没有解决后,添加上了@RunWith(SpringRunner.class)注解,问题成功得以解决 这里解释一下@RunWith 阅读全文
摘要:
注意Thread.interrupted()方法的目标对象是"当前线程",而不管本方法来自于哪个对象 比如看如下代码: package threadcoreknowledge.test; public class interrupte { public static void main(String 阅读全文