摘要: 索引 今天前辈说了回表 首先想一个问题 基于主键索引和普通索引的查询有什么区别? 如果语句是 select * from T where ID=500,即主键查询方式,则只需要搜索 ID 这棵 B+ 树; 如果语句是 select * from T where k=5,即普通索引查询方式,则需要先搜 阅读全文
posted @ 2021-07-19 22:58 xiaoff 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 对象失是否存活 两种判断方法 引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时 计数器值就加一;当引用失效时,计数器值就减一; 任何时刻计数器为零的对象就是不可能再被使用的。 引用计数算法的缺陷 如下面代码,两个对象互相引用导致无法回收♻️ 对象objA和objB都有字段instan 阅读全文
posted @ 2021-07-18 14:58 xiaoff 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 进程 进程本质上是正在执行的一个程序 在这个地址空间中,进程可以进行读写。该地址空间中存放有可执行程序、程序的数据以及程序的堆栈 除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表(process table), 进程表是数组(或链表)结构,当前存在 的每个进程都要占用其中一项 阅读全文
posted @ 2021-07-17 14:39 xiaoff 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 类加载过程 类加载机制: Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型 在Class文件中􏰁述的各类信息,最终都需要加 载到虚拟机中之后才能被运行和使用 类的生命周期 一个类型从被加载到虚拟机内存中开始,到 阅读全文
posted @ 2021-07-17 10:46 xiaoff 阅读(48) 评论(0) 推荐(0) 编辑
摘要: mybatis常见元素 cache – 该命名空间的缓存配置。 cache-ref – 引用其它命名空间的缓存配置。 resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。 sql – 可被其它语句引用的可重用语句块。 insert – 映射插入语句。 update – 阅读全文
posted @ 2021-07-08 14:45 xiaoff 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 行为参数化传递 1.首先看一个小的例子 我们要将一个库存排序,再进行苹果重量比较 // inventory 库存 Collections.sort(inventory, new Comparator<Apple>() { public int compare(Apple a1,Apple a2){ 阅读全文
posted @ 2021-05-31 10:38 xiaoff 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 事务 事务的特性 原子性:所有操作要么都做要么都不做 一致性:数据在事务操作前后都满足业务规则的约束 隔离性:数据库允许多个并发事务同时对数据进行读写和修改的能力 持久性:对数据的修改是永久的 truncate与delete 区别: truncate是DDL语句操作,delete是DML语句操作 简 阅读全文
posted @ 2021-05-14 14:31 xiaoff 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 使用Build模式 不是直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器,得到一个builder对象 然后客户端在builder对象上调用类似于setter的方法,来设置每个相关的可选参数 最后,客户端调用无参的build方法来生成不可变的对象 // 在这当中 FF是不可变的,所有的默认 阅读全文
posted @ 2021-05-13 12:21 xiaoff 阅读(52) 评论(0) 推荐(0) 编辑
摘要: CopyOnWriteArrayList介绍 ###CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的,也就是使用了类似写时复制的策略,只不过这里是直接复制一个数组 源码分析 初始化:内部创建了一个大小为0的Obj 阅读全文
posted @ 2021-05-11 13:46 xiaoff 阅读(407) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal介绍 ThreadLocal是JDK包提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量, 那么访问这个变量的每个线程都会有这个变量的一个本地副本。当多个线程操作这个变量时, 实际操作的是自己本地内存里面的变量,从而避免了线程安全问题。 基本使用 t 阅读全文
posted @ 2021-05-11 09:56 xiaoff 阅读(61) 评论(0) 推荐(0) 编辑