- 博客(29)
- 收藏
- 关注
原创 Mysql学习之三. NLJ和BLN介绍
一.mysql中表关联有两种常见算法1.1. N L J 嵌套循环算法 (Nested Loop Join)1.2.B N L 块嵌套循环 (Block Nested Loop Join)二. 简介 2.1.N L J 嵌套循环算法 (Nested Loop Join)内连接inner join, 数据库会自主选择驱动表,(以小表驱动大表)Left Join, 以左边的表为驱动表Right Join,以右边的表为驱动表执行的流程为:循...
2022-03-24 19:09:44
2004
原创 三. 简单正则匹配
1. 背景需要把接收的字符串文本里面的特殊字符给转义,例如对   ,<br>,<br />等进行处理2. 方案使用正则匹配进行数据替换 /** * * 配置   以及 两种方式的空格 * * * */ @Test public void match1(){ String regex...
2022-03-08 15:03:36
383
原创 Mysql学习之二. ken_len索引长度计算
一. 字符类型不可变长char(n) : 字符集默认类型 * n + 可为空 * 1 (如果不可为空,则不加1)。可变长varchar(n) : 字符集默认类型 * n + 2 (记录变可变长字符串需要) + 可为空 * 1 (如果不可为空,则不加1)。 常见字符集默认值系数: 1.1. utf8:3 1.2. utfmmb4: 4 1.3.latin:1二. 整型...
2022-02-22 20:15:22
725
原创 Mysql学习之一. 索引结构
1.索引是啥?索引是帮助数据库高效获取表数据的排好顺序的数据结构。2. 索引的机构?在mysql中是B+tree变种索引,其它数据库类似这种树结构非叶子节点存储索引(存在冗余),叶子节点存储索引和数据,叶子节点之间是双向指针, 此处说明了它是B+tree变种,因为B+tree的叶子节点是单向指针。3.Mysql常见的引擎有MYSAIM 和 InnoDB引擎(默认)等MYSAIM引擎索引文件和数据文件是分开的,也就是非聚合的InnoDB引擎中,存在聚合索引和 非聚合
2022-02-16 19:35:21
574
转载 二、八、十、十六进制转换
一.本文所涉及的内容(Contents)本文所涉及的内容(Contents) 背景(Contexts) 进制转换算法(Convert) (二、八、十六进制) → (十进制) 二进制 → 十进制 八进制 → 十进制 十六进制 → 十进制 (十进制) → (二、八、十六进制) 十进制 → 二进制 十进制 → 八进制 十进制 → 十六进制 (二进制) ↔ (八、十六进制) 二进制 → 八进制 八进制 → 二进制 二进制 → 十六进制
2022-02-03 10:57:43
106
原创 入门篇. Mybatis应用搭建以及一,二级缓存理解
一.简介Mybatis是一款轻量级持久层的ORM框架Object Relational Mapping二.应用搭建2.1.mybatis-config全局配置文件,数据库db.properties配置文件 2.2.mapper接口以及对于的xml文件2.3.@Junit测试2.1.mybatis-config全局配置文件,数据库db.properties配置文件<?xml version="1.0" encoding="UTF-8" ?><.
2021-10-30 15:35:52
143
原创 优雅的拼接字符串StringJoiner
1.背景 JDK8里面的字符串拼接工具类:java.util.StringJoiner ,非线程安全,因为它里面有个非线程安全的成员属性StringBuilder value 来工作的。2. 使用 @Test public void spinStringByStringJoiner(){ List<String> lists = new ArrayList<>(); StringJoiner joiner = ..
2021-10-23 11:28:52
330
原创 Spring源码一.(6)spring事件学习
一.spring事件三大组件 1.1.事件 1.2.事件监听器 1.3.事件广播器(多播器)二.事件流程图 概念:以下图为例,每次发布的一条新闻就可以理解为一个事件,上面的主持人就是事件的发布者,下面的记者就是事件的监听者。 spring事件是基于观察者设计模式 2.1.spring内置事件 例如spring容器启动完毕,以及销毁等等都会产生内置事件,这里不作介绍...
2021-10-16 10:12:10
135
原创 JVM学习二.逃逸分析
一.啥叫逃逸分析?一般对象是分配在堆中的,而开启了JVM的逃逸分析后,对象很可能就会被分配在线程栈上.是一种JVM的优化技术手段。二.如何开启?JVM1.7后默认开启了逃逸分析-XX:+DoEscapeAnalysis,作为优化手段。三.通过对应jmap工具来进一步分析? 这里写循环new 五十万个对象分别启用逃逸分析和 关闭逃逸分析进行观察 3.1. 首先通过jps命令,查看对应java进程 3.2.通过j...
2021-10-11 22:31:42
252
转载 Java日志系统历史学习
前言最早开始撸码当时就遇到几次日志jar包冲突的问题,当时也是很烦躁,毕竟了解的也不多,什么那里4j,这里4j,还有什么桥接包,而且在我感觉他们的包名都还差不多!!我当时是比较懵逼的,上网搜了下,随便看到一个类似这种桥接过去桥接过来的图我就懵,都是些啥玩意儿最近项目中突然发现我们自己的工程对于日志的记录也不是很好,很多各种日志的注解大家用的也不一样,有@Log4j,也有@Slf4j的,也有@Log4j2的,索性干脆彻底去了解一下日志系统由于个人一直觉得现在学习技术是很好的年代,毕竟我们在前人
2021-10-04 10:17:37
112
原创 Spring源码一.(5)事务理解
一.入门知识点@Transactional注解: 会产生代理对象,实现功能的改变和增强 Object target : 目标对象 Proxy :代理对象 如果是CGLIB的动态代理,会在代理对象中 存在一个目标对象的属性例如 ClassProxy{ Object target; } 在前置执行后,会调用target对象的XX方法,执行对应逻辑,后面再执行后置动作二.在配置类上要开启事务支持功能 @EnableTransa...
2021-10-01 17:50:47
99
原创 spring源码一.(4) BeanPostProcessor的八次执行
1.背景介绍 BeanPostProcessor它贯穿spring的bean生命周期,可以用来干预bean的实例化,初始化,使其成为一个完整的bean,而不仅仅是一个对象!2.八次执行流程学习 2.1.第一次 :给予后置处理器一个提前返回代理对象的机会 2.2 第二次:在实例化对象时,用于推断用哪个构造方法 2.3 第三次:找出对应的注入点,存到InjectionMetadata对象中去 注意点2.3.1....
2021-09-29 23:42:01
391
原创 Synthetic合成方法学习
背景来源:spring源码第一次bpp判断时,spring循环依赖时aop对象提前实例化!package com.shadow.wang.synthetic;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class OuterClass { public static void main(String[] args) { InnerClass inner
2021-09-25 20:12:48
335
原创 JVM学习 一.双亲委派
1.JVM加载类是具有父子层级结构 简单来说,在类加载时,类加载器首先会委托父类加载器进行加载,如果找不到,继续委托父类加载器加载类,直到引导类加载器。(从下往上) 如果最顶级类加载器在其类加载路径下也没加载到当前类的话,那将由委派最近级别的子类加载器进行类加载。(从上往下) 注意点:这里所描述的父类加载器,其实不是指的是 类之间的关系,而是表示类的一个parent属性而已。2.双亲委派的优点: 2.1.防止窜改核心类库中的类...
2021-09-24 07:49:25
89
原创 spring源码一.(3)@Configuration注解理解
问题引发:spring中bean的单例性被破坏了. B对象被实例化了两次处理方案:在配置类上加上@Configuration注解思考:为啥能加上一个注解,就解决了此问题?这里应为加上了@Configuration,配置类产生了代理,方法被重写了。在哪里被代理的? 调用bdrpp的父类接口方法,完成cglib代理ConfigurationClassPostProcessor#postProcessBeanFactory简单理解为:getBean()..
2021-09-20 17:50:43
154
原创 spring源码二.与mybatis整合和流程简介
一.数据库表-- 建表语句 -- SHOW CREATE TABLE t_emp;CREATE TABLE `t_emp` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) DEFAULT NULL, `age` INT(3) DEFAULT NULL, `deptId` INT(11) DEFAULT NULL, `empno` INT(11) NOT NULL, PRIMARY...
2021-09-19 17:23:03
118
原创 spring源码一.BeanDefinion之常见类图
1.第一层级: AbstractBeanDefinition是抽象类2.第二层级: RootBeanDefinition: 父bd ChildBeanDefinition:子bd,它必须继承一个父bd,不可单独存在 GenericBeanDefinition:从spring2.5后可以替代ChildBeanDefinition,源码给的解释是Since Spring 2.5, the preferred way to register bean* de...
2021-09-14 23:59:32
181
原创 spring源码一.BeanDefinion之基础GenericBeanDefinition
map存放 beandefiniton的额外属性, (例如配置类的configClass - full 或者lite) source的理解:它是beandefiniton对象的·源对象!!! 思维导图:一个spring bean对象的 源是 一个 bd ,一个bd对象的源是 source....
2021-09-13 23:32:24
143
原创 Object对象里面的十二个方法
一.registerNatives()本地方法,由JVM实现,底层是C/C++实现,向JVM中注册二.getClass()返回Class对象三.hashCode()返回当前对象的hashCode值四.equals()用于比较当前对象与目标对象是否相等,默认是比较引用是否指向同一对象。为public方法,子类可重写。五.clone()此方法返回当前对象的一个副本。属于protected方法,提...
2021-08-01 14:59:05
315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人