摘要: bean实例化:创建对象,通过底层的class反射创建。 bean初始化:就是执行那个定义的初始化方法,和java对象的初始化不是一个东西。 1.spring bean的生命周期 (实例化前)执行postProcessBeforeInstantiation方法,这里返回的对象会替换掉原来的bean。 阅读全文
posted @ 2022-03-29 20:59 YUKINO62 阅读(37) 评论(0) 推荐(0) 编辑
摘要: next-key锁 对记录加锁时,加锁的基本单位是 next-key lock,它是由记录锁和间隙锁组合而成的,next-key lock 是前开后闭区间,而间隙锁是前开后开区间。但是,next-key lock 在一些场景下会退化成记录锁或间隙锁。 实验用的表: 其中,id 是主键索引(唯一索引) 阅读全文
posted @ 2022-03-14 19:14 YUKINO62 阅读(2436) 评论(1) 推荐(0) 编辑
摘要: Buffer Poll Buffer Pool 中默认的缓存页大小和在磁盘上默认的页大小是一样的,都是 16KB,为了更好的管理这些在 Buffer Pool 中的缓存页,设计 InnoDB 的大叔为每一个缓存页都创建了一些所谓的 控制信息 ,这些控制信息 包括该页所属的表空间编号、页号、缓存页在 阅读全文
posted @ 2022-03-14 19:09 YUKINO62 阅读(124) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal用来做线程隔离,可以看做当前线程的局部变量,可以在整个线程执行期间传递信息 先从他的get方法开始看 public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if ( 阅读全文
posted @ 2022-02-10 12:07 YUKINO62 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 强引用:之前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用,比如下面这段代码中的object和str都是强引用: Object object = new Object(); String str = "StrongReference"; 如果一个对象具有强引用,那就类似于必不可少的物品, 阅读全文
posted @ 2022-02-10 09:50 YUKINO62 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 前置知识: 文件描述符 文件描述符其实就是一个数字代表的数据结构 另外每个进程一旦创建都有三个自己默认的文件描述符 0u(标准输入) 1u(标准输出) 2u(报错信息输出),u代表读写都可以。 在/proc下有进程相关的信息,在/proc/进程pid/fd下有该进程正在使用的文件描述符 每个进程都有 阅读全文
posted @ 2022-02-10 09:40 YUKINO62 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透就是查询一次不存在的数据,因为不存在,所以也不会往redis里写值,这样一直查不存在的数据就会导致一直查数据库,redis并没有起到作用。 解决这个可以让redis缓存一个空值或者缓存一个特殊的字符串,但如果别人故意每次用不同的不存在的值恶意攻击的话,即使缓存了空值也还是没有, 这就可以用布 阅读全文
posted @ 2022-01-16 11:25 YUKINO62 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 今天做项目的时候看mybatis-plus打印的sql语句日志中用的是count(1),感觉不是很懂,就查了查 以下内容转载自:https://blog.csdn.net/qq_34827674/article/details/122336347 首先说一下count()这个函数,count()函数 阅读全文
posted @ 2022-01-11 21:31 YUKINO62 阅读(4712) 评论(0) 推荐(0) 编辑