自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

低调的烂笔头的博客

技术文档积累

  • 博客(43)
  • 收藏
  • 关注

原创 05-深入浅出索引(下)

需要注意的是,在引擎内部使用覆盖索引在索引k上其实读了三个记录,R3~R5(对应的索引k上的记录项),但是对于MySQL的Server层来说,它就是找引擎拿到了两条记录,因此MySQL认为扫描行数是2。但是,学过本章内容的小吕又纳闷了,既然主键包含了a、b这两个字段,那意味着单独在字段c上创建一个索引,就已经包含了三个字段了呀,为什么要创建“ca”“cb”这两个索引?所以现在你知道了,这段开头的问题里,我们要为高频请求创建(身份证号,姓名)这个联合索引,并用这个索引支持“根据身份证号查询地址”的需求。

2025-03-28 14:20:00 844

原创 04-深入浅出索引(上)

你要查身份证号在[ID_card_X, ID_card_Y]区间的User,可以先用二分法找到ID_card_X(如果不存在ID_card_X,就找到大于ID_card_X的第一个User),然后向右遍历,直到查到第一个大于ID_card_Y的身份证号,退出循环。在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。索引可能因为删除,或者页分裂等原因,导致数据页有空洞,重建索引的过程会创建一个新的索引,把数据按顺序插入,这样页面的利用率最高,也就是索引更紧凑、更省空间。

2025-03-28 14:18:23 967

原创 03-事务隔离:为什么你改了我还看不见?

提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了。简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,

2025-03-27 14:40:58 519

原创 02-日志系统:一条SQL更新语句是如何执行的?

当你需要扩容的时候,也就是需要再多搭建一些备库来增加系统的读能力的时候,现在常见的做法也是用全量备份加上应用binlog来实现的,这个“不一致”就会导致你的线上出现主从数据库不一致的情况。与此类似,InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,那么这块“粉板”总共就可以记录4GB的操作。然后你会发现,如果需要用这个binlog来恢复临时库的话,由于这个语句的binlog丢失,这个临时库就会少了这一次更新,恢复出来的这一行c的值就是0,与原库的值不同。

2025-03-27 14:37:00 357

原创 01_JVM与Java体系结构

你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就GG了。每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优VM参数,如何解决GC、OOM等问题,一脸懵逼。大部分Java开发人员,除了会在项目中使用到与Java平台相关的各种高精尖技术,对于Java技术的核心Java虚拟机了解甚少。

2025-03-23 20:54:57 656

原创 01-基础架构:一条SQL查询语句是如何执行的?

MySQL基本架构下面是MySQL的基本架构示意图,从中可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程。大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。

2025-03-21 14:58:49 789

原创 01-谁最便宜就选谁——基于成本的优化

我们之前老说MySQL在执行一个查询时可以有不同的执行方案。它会选择其中成本最低,或者说代价最低的那种方案去真正地执行查询。不过我们之前对成本的描述是非常模糊的,其实一条查询语句在 MySQL 中的执行成本是由两个方面组成的。I/O成本:我们的表经常使用的 MyISAM、InnoDB 存储引擎都是将数据和索引存储到磁盘上。当查询表中的记录时,需要先把数据或者索引加载到内存中,然后再进行操作。这个从磁盘到内存的加载过程损耗的时间称为 I/O 成本。

2025-03-21 14:31:48 694

原创 02-SpringApplication.run

/ 初始构造时加载了 系统属性(systemProperties jvm属性配置)系统环境变量(systemEnvironment)// 放到最后 优先级最低// 解决属性匹配 _ , - , 驼峰 均能匹配到数据// 配置获取优先级// 默认属性名完全一样才能获取到配置。

2024-05-09 15:33:42 411

原创 01-new SpringApplication

【代码】01-new SpringApplication。

2024-05-08 22:29:23 399

原创 08-MVC处理流程

当浏览器发送一个http://127.0.0.1:8080/hello到达服务器后, 其处理流程如下:

2024-05-07 20:32:38 566

原创 07-HandlerMapping和HandlerAdapter

Bean@Bean@Bean@Component@Override// 404@Autowired@Override@Override// 返回null 不会渲染视图@Overridereturn -1;

2024-05-06 15:20:31 351

原创 06-异常处理

局部异常处理器-ModelAndView局部异常处理器-嵌套异常局部异常处理器-带参全局异常处理器TomcatTomcat默认异常页面启动服务

2024-04-30 10:22:45 298 1

原创 05-MessageConverter和ControllerAdvice

准备对象。

2024-04-29 13:24:18 343

原创 04-返回值处理器

【代码】04-返回值处理器。

2024-04-28 11:42:51 223

原创 03-MVC执行流程-参数解析与Model

【代码】03-MVC执行流程-参数解析与Model。

2024-04-27 19:23:02 500

原创 02-参数解析器

上一节通过调用方法获取了Spring提供的参数解析器,这节通过案例测试这些参数解析器的工作方式。

2024-04-26 13:27:20 370 2

原创 01-DispatchServlet和RequestMapping

*** 自定义参数注解:用于将请求头中的token参数解析出来并放入方法入参(参数解析器)*//*** 自定义方法返回值注解 用户测试自定义方法返回值处理器*//*** @desc 继承RequestMappingHandlerAdapter,重新invokeHandlerMethod方法* 因为此方法是protected的,外部无法调用 继承后修改为public便于测试*/@Override/**

2024-04-25 10:32:15 404 1

原创 16-入坑:实现了SmartInitializingSingleton却不执行

SmartInitializingSingleton是spring的扩展点之一,主要用于在Spring容器启动完成时进行扩展操作,即afterSingletonsInstantiated()。接口的bean的作用域必须是单例,afterSingletonsInstantiated()才会触发。问题代码:代码中实现了spring提供的SmartInitializingSingleton接口,并实现了afterSingletonsInstantiated方法,但是却不执行。

2024-04-24 11:45:05 1074

原创 15-事件

Bean// 配置自定义的事件发送器// GenericApplicationListener具备判断事件类型的能力// 收集事件监听器@OverrideSystem.out.println("当前事件监听器为:" + applicationListener + ", 能够处理的事件类型为:" + interfaceEventType);// 对事件进行包装 添加事件类型判断@Override// 是否支持某时间类型 eventType为当前的事件类型@Override。

2024-04-23 14:50:34 225

原创 14-@Autowired处理

【代码】14-@Autowired处理。

2024-04-22 21:47:22 621

原创 13-@Value解析

【代码】13-@Value解析。

2024-04-22 21:46:51 296

原创 12-spring代理

【代码】12-spring代理。

2024-04-19 14:27:10 171 1

原创 11-FactoryBean

如果存在当前bean的FactoryBean, spring认为诸如依赖注入、初始化、Aware等这些生命阶段都应该有FactoryBean种处理, 所以即使这里配置了都不会生效。

2024-04-18 21:00:47 300

原创 10-循环依赖

总结下 Spring 解决循环依赖的思路:在创建单例 Bean 时,会把该 Bean 的工厂函数的匿名类对象放入三级缓存中的 singletonFactories 中。然后在填充属性时,如果出现循环依赖依赖本 Bean,必然执行之前放入的工厂函数的匿名实现,如果该 Bean 无需 AOP 的话,工厂函数返回的就是原 Bean 对象;如果该 Bean有 AOP 的话,也有可能是被某些 BBP 处理 AOP 之后的代理对象,会放入二级缓存中的 earlySingletonObjects 中。

2024-04-18 13:53:10 645

原创 09-AOP

实例化 -> () -> 依赖注入 -> 初始化 -> (初始化之后:没有循环依赖实例化后,依赖注入之前(有循环依赖) 暂存于二级缓存依赖注入和初始化不应该被增强,即还是原对象调用。

2024-04-17 13:35:54 671

原创 08-动态代理

【代码】08-动态代理。

2024-04-16 14:53:04 331

原创 07-Bean的作用域

我们用的最多的就是单例singleton了,这个就不再描述。

2024-04-14 21:16:00 385

原创 06-Bean生命周期

【代码】06-Bean生命周期。

2024-04-12 17:54:51 259

原创 05-Spring内置接口

测试。

2024-04-11 11:46:49 173 1

原创 04-BeanPostProcessor

【代码】04-BeanPostProcessor。

2024-04-10 15:57:37 293

原创 03-BeanFactoryPostProcessor

Override// 正规写法应该获取所有@Configuration的类@Override测试@Override// 方法参数值注入// 一般@Bean的bean名字都是取方法名@Override测试@Override/*** 这里BeanName不能使用mapperFactoryBeanDefinition* 因为同名Bean会被覆盖。

2024-04-09 14:34:27 421

原创 02-ApplicationContext

Data--相当于 AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);此功能加载一些内置后处理器--> <!--相当于 AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);此功能加载一些内置后处理器--> <!--

2024-04-08 13:14:35 417

原创 01-BeanFactory

介绍BeanFactory

2024-04-03 15:34:41 212

原创 07-线程池

7.1 自定义线程池![image.png](https://img-blog.csdnimg.cn/img_convert/2e68c2b0a1b4f3c2c734c9dbd20d97e7.png#averageHue=#fdfcef&clientId=uf663d050-93f7-4&errorMessage=unknown error&from=paste&height=407&id=u1b98b89f&name=image.png&orig

2023-03-15 11:12:25 153

原创 06-共享模型之不可变

共享模型之不可变

2023-03-10 17:05:51 79

原创 05-共享模型之无锁

无锁Atomic

2023-03-10 11:11:24 104

原创 04-共享模型之内存

JMM:Java内存模型

2023-03-08 17:24:15 86

原创 03-共享模型之管程

monitor ReentrantLock

2023-03-07 13:39:58 159

原创 02-Java线程

Java线程

2023-03-04 11:17:46 104

原创 01-进程与线程

进程与线程

2023-02-27 21:48:29 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除