
学习笔记
文章平均质量分 53
金牛区代码仔
这个作者很懒,什么都没留下…
展开
-
并发编程笔记——并发容器、 同步⼯具类、原子操作类
并发编程中常用的容器:BlockingQueue的几个实现类,如CopyOnWrite一些同步工具类如:CyclicBarrier、CountDownLatch,一些Atomic原子类如:AtomicLong、LongAdder原创 2022-08-01 16:10:21 · 152 阅读 · 0 评论 -
MySQL的Log文件
MySQL的Undo Log、Redo Log 和 Binlog文件介绍Undo Log概念:数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。生命周期:Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进行回收处理。Undo Log属于逻辑日志,记录一个变原创 2022-02-28 16:16:05 · 3879 阅读 · 0 评论 -
MySQL之InnoDB数据文件结构
InnoDB数据文件存储结构分为一个ibd数据文件–>Segment(段)–>Extent(区)–>Page(页)–>Row(行)Tablesapce表空间,用于存储多个ibd数据文件,用于存储表的记录和索引。一个文件包含多个段。Segment段,用于管理多个Extent,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment)。一个表至少会有两个segment,一个管理数据,一个管.原创 2022-02-26 11:18:03 · 889 阅读 · 0 评论 -
MySQL之InnoDB线程模型
IO Thread在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。在InnoDB1.0版本之前共有4个IO Thread,分别是write,read,insert buffer和log thread,后来版本将read thread和write thread分别增大到了4个,一共有10个了。read thread : 负责读取操作,将数据从磁盘加载到缓存page页。4个write thread:负责写操作,将缓存脏页刷新到磁盘。4个log thre.原创 2022-02-25 17:38:12 · 116 阅读 · 0 评论 -
MySQL的InnoDB引擎存储结构
概述从MySQL 5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛。下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分。内存结构内存结构主要包括Buffer Pool、Change Buffer、Adaptive Hash Index和Log Buffer四大组件。1.Buffer Pool:缓冲池,简称BP。BP以Page页为单位,默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和原创 2022-02-25 17:26:53 · 553 阅读 · 0 评论 -
MySQL运行机制笔记
概述:运行机制:一个SQL命令执行时mysql都做了些什么或者说是怎么运行的总体流程见下图:步骤分解:总体可以分为4个:连接机制、查询缓存机制、解析和优化机制、执行引擎机制1.连接机制:2.查询缓存机制:3.解析和优化机制:4.执行引擎机制 :...原创 2022-02-25 15:10:49 · 148 阅读 · 0 评论 -
NIO编程基础
NIO三大核心:Channel、Buffer、SelectorBuffer类缓冲区有七大可操作类:ByteBuffer、LongBuffer、CharBuffer(除了Boolean类型的其他7个基本类型)Buffer类有两个静态方法来实例化对象:ByteBuffer.allocate(int i):指定容量ByteBuffer.wrap(byte[] bs):创建有内容的buffer对象Buffer类提供的api:方法作用position()当前索引位置limi原创 2021-07-26 15:39:45 · 106 阅读 · 0 评论 -
网络编程BIO、NIO和AIO对比
BIO、NIO和AIO对比:1. 应用场景:模型适用场景BIO连接数少和连接时间短的场景NIO连接数多和连接时间短的场景AIO连接数多和连接时间长的场景2. 同步和阻塞情况对比模型同步和阻塞情况BIO同步阻塞,类似一个人守一个水壶NIO同步非阻塞,类似一个人守多个水壶AIO异步非阻塞,类似无人守水壶,水烧开会自动通知3. 同步和异步,阻塞和非阻塞概念概念解释同步访问一个资源时,需要等待进程去原创 2021-07-26 15:33:46 · 125 阅读 · 0 评论 -
关于Nginx配置中对于location末尾的“/“的处理
背景我们在配置nginx的nginx.conf文件中,会存在location配置项,一般我们会在大括号{}中配置的参数有:proxy_pass、root、alias。这里有一个问题:这些参数的属性值末尾处加不加斜杠“/”,在nginx跳转时不会拼接上location里的路径?如图:试验结果记录问:加"/“和不加”/"时,跳转会不会拼接上location里的路径?答:参数项加"/"不加"/"proxy_pass不会会root会会alias不会会报错原创 2021-07-19 16:13:56 · 7295 阅读 · 0 评论 -
Tomcat架构基本解析
Tomcat由两大核心组件:Connector和ContainerConnector:连接器,负责处理http请求,将字节流和Http对象相互转化Container:容器,负责加载servlet,处理请求Tomcat的Connector组件——Coyotecoyote是Tomcat的连接器组件,它负责的具体任务有:具体协议:支持http1.1、http2.0(tomcat8.5之后)、AJP,默认:http1.1IO相关内容:支持nio、nio2、APR,默认:nio(tomcat8.0之后原创 2021-07-19 15:52:45 · 119 阅读 · 0 评论 -
MyBatis(MP)增强SQL注入原理
1.扫描识别项目启动时,我们所写的继承了BaseMapper的接口(XxMapper extends BaseMapper)会被MP中的组件所识别。而这个识别的核心组件就是 IsqlInjector,它是一个接口,表示具有sql注入功能的接口。这个IsqlInjector接口的实现由AbstractSqlInjector类实现,AbstractSqlInjector是一个抽象类,它里面实现了接口定义的inspectInject()方法:@Overridepublic void inspe原创 2021-06-08 09:58:33 · 470 阅读 · 0 评论 -
阶段一:Mybatis学习笔记
Mybatis一对一、一对多、多对多关系映射实例Mybatis自定义插件配置Mybatis延迟加载原理Mybatis二级缓存流程笔记Mybatis架构设计原理笔记原创 2021-06-06 21:39:05 · 89 阅读 · 0 评论 -
Mybatis延迟加载原理
阶段一 调用SQLSession的查询方法时:例如执行代码“T t = sqlSession.selecOne();”时Mybatis会返回一个T类型的代理对象,部分源码如图 // 创建映射后的结果对象 Object resultObject = createResultObject(rsw, resultMap, constructorArgTypes, constructorArgs, columnPrefix); if (resultObject != null原创 2021-06-05 17:12:57 · 310 阅读 · 0 评论 -
Mybatis二级缓存流程笔记
Mybatis开启二级缓存步骤:点我跳转原创 2021-06-05 15:06:12 · 122 阅读 · 0 评论 -
Mybatis架构设计原理笔记
Mybatis架构设计原理1.首先架构功能分为三层:层级描述接口层我们调用的API框架支撑层负责解析SQL,执行SQL,结果映射处理数据处理层连接池、缓存、事务2.其次是Mybatis的核心组件:组件名描述SqlSession执行CURD的API入口Executorsql执行器,通过statementid找到要执行的sql,并在该层执行缓存操作StatementHandlerExecutor通过调用该组件来将mapped原创 2021-06-04 16:52:36 · 119 阅读 · 0 评论 -
Mybatis自定义插件配置和PageHelper插件实例
Mybatis自定义插件配置思路设计一个自定义插件类添加相关配置或添加bean实现1.自定义插件MySqlPulgin类@Intercepts({ @Signature( type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class} )}原创 2021-06-03 22:51:20 · 762 阅读 · 0 评论 -
Mybatis一对一、一对多、多对多关系映射实例
一对一对象关一对多多对多原创 2021-06-01 15:41:53 · 149 阅读 · 0 评论