自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

搞数学的架构师的博客

你这个年龄段,你这个阶段,你睡得着觉,有点出息没有?

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

原创 Spring循环依赖-万字解析

准备两个类:Person与Car@Autowired //字段注入 private Person person;this . catType = "马自达";} //set注入 @Autowired public void setPerson(Person person) {} //省略toString } @Component public class Person {this . name = "迪";} //省略toString }字段注入:就是将@Autowired标记在字段上。

2023-03-03 01:00:49 226

原创 AQS-AbstractQueuedSynchronizer原理

AQS#ReentrantLock

2023-02-27 10:23:49 126

原创 Dubbo SPI机制及扩展类源码详解

DubboSPI机制与扩展点及ExtensionLoader核心源码介绍

2023-02-13 17:09:32 201

原创 Spring Bean生命周期,全网最详细(源码解读,附代码)

Spring Bean 生命周期Bean 元信息配置阶段Bean 元信息解析阶段Bean 注册阶段Bean 合并阶段Bean Class 加载阶段Bean 实例化前阶段Bean 实例化阶段Bean 实例化后阶段Bean属性填充阶段Aware回调阶段Bean 元信息配置阶段Bean 元信息需要自己手动的配置,可以通过XML、Bean 元信息解析阶段Bean 注册阶段Bean 合并阶段Bean Class 加载阶段Bean 实例化前阶段Bean 实例化阶段Bean 实例化后阶段Bean属性填

2021-04-13 17:04:02 506 3

原创 Mysql-Order by的原理

MySQL中order by是怎么工作的?准备案例CREATE TABLE `user_info` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city`)) ENGINE=

2021-03-26 17:56:57 124

原创 Mysql-普通索引和唯一索引怎么选择

普通索引和唯一索引怎么选择从性能角度来说查询性能唯一索引:查询等值条件的话由于是唯一的查询的数据直接返回。(范围查询索引不会生效);普通索引:查询到符合条件的数据后,还会遍历下一条数据是否满足条件。也就是说普通索引比唯一索引多一次条件判断的操作,这个操作几乎微乎其微,而且Mysql是以页为单位进行读取的(默认16k/页),查询一条记录也会读取整个页到内存,下一次条件判断也是在内存中进行,如果是下一条记录是在另一页的话,这个过程只会复杂一点点,可以忽略不记。更新性能change buffer

2021-03-23 17:03:23 133

原创 Mysql正确清空表数据的姿势

你真的知道怎么清空表数据吗?参数innodb_file_per_tabel单行数据删除页数据删除解决碎片问题参数innodb_file_per_tabelMysql官方说明了innodb_file_per_tabel大致意思是,每个表都可以配置自己独立的数据存储文件,在表的目录下以,表名.ibd结尾的就是。可以通过innodb_file_per_tabel配置:1.OFF:表示存放在系统共享表中;2.ON:表示单独存放在以 表名.ibd文件中。单行数据删除以这张图为例,我要删除row6的记

2021-03-08 14:42:07 178

原创 Spring Bean的基础

Spring Bean定义BeanBeanDefinition元信息注册Spring Bean定义BeanBeanDefinition元信息注册Spring Bean

2021-02-06 09:41:31 160

原创 踩坑ElasticSearch 中IK分词器编译版本不一致

直接说:新版本尽量不要通过maven去编译,直接去下载编译好的,否则很容易出现版本不一致的情况下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases

2021-02-01 10:48:05 925

原创 cpu中的写直达与写回策略

写直达与写回策略写直达(Write-Through):在这个策略里,每一次数据都要写入到主内存里面。在写直达的策略里面,写入前,我们会先去判断数据是否已经在 Cache 里面了。如果数据已经在 Cache 里面了,我们先把数据写入更新到 Cache 里面,再写入到主内存里面;如果数据不在 Cache 里,我们就只更新主内存。写直达的这个策略很直观,但是问题也很明显,那就是这个策略很慢。无论数据是不是在 Cache 里面,我们都需要始终把数据同步到主内存里面。写回策略如果发现我们要写入的数据,就在

2020-12-31 11:56:34 7055

原创 Redis在linux中轻松的安装 ,可以安装多个(5.xx,6.xx)

Linux中的Redis简单安装Redis官网下载解压编译想变成一个服务Redis官网下载去Redis复制下载链接,https://download.redis.io/releases/redis-5.0.10.tar.gz,这样是5.0的,也可以安装6.0以上的,但是要跟新gcc,待会列出来。到Shell命令行执行 wget https://download.redis.io/releases/redis-5.0.10.tar.gz 会在当前目录下下载一个后缀未tar的压缩包。解压tar -zx

2020-12-10 18:13:43 1777 5

原创 Redis持久化之RDB内存快照

Redis中持久化方法:内存快照,所谓内存快照是指,内存中的数据,在某一时刻被系统做个记录,类似于拍照。Redis就是把某一时刻的状态以文件的形式记录到磁盘,也就是快照,这样一来就可以不丢失数据,也就是RDB(Redis Data Base)的缩写。RDB和AOF的区别AOF是记录的每一次操作的命令,而RDB则是记录某一时刻的数据。所以再做数据恢复时,把文件读入内存,很快就会完成恢复。RBD给哪些数据做快照呢?Redis的数据都是再内存中的,为了提供数据的可靠性,RDB执行的是全量快照,也就是把内

2020-12-09 15:22:04 697 1

原创 Redis中的AOF持久化、重写阻塞、fork阻塞

AOF持久化AOF怎么记录的AOF记录了什么AOF的潜在风险数据丢失阻塞写回策略AOF的重写机制AOF重写如何避免阻塞Redis虽然是基于内存的键值对数据库,但是它同时也支持持久化,可以根据自己的业务来判断是否可以当作数据持久化的数据库使用。Redis支持两种持久化文件:RDB:记录数据某一时刻的快照;AOF:更新命令以追加的方式写入文件。AOF怎么记录的AOF是写后日志,意思是先写内存在记日志。AOF记录了什么Redis中的AOF记录了执行的命令,这些命令就保存在文件中。Redis在记

2020-11-17 16:48:34 1450

原创 Redis的单线程为什么快?(网络IO模型)

写这篇Redis单线程为什么快,Redis6.x已经发布快一年了,但是绝大公司还是在使用Redis5.x版本,因为Redis5.x已经足够给中小型企业提供支持了,甚至有些大型公司还在使用单线程Redis。Redis的单线程为什么快?Redis真的是单线程的吗?Redis为什么是单线程?Redis单线程为什么也会如此之快?阻塞I/O非阻塞I/O多路复用Redis真的是单线程的吗?首先,在此说明,Redis6.0以前真的是单线程吗?这里分为两个方面:Redis的单线程指的是再网络IO连接到读写的处理是

2020-11-04 11:09:38 251

原创 redis中的数据结构和快速的redis有哪些慢动作

为啥 Redis 能有这么突出的表现呢?一方面,这是因为它是内存数据库,所有操作都在内存上完成,内存的访问速度本身就很快。另一方面,这要归功于它的数据结构。这是因为,键值对是按一定的数据结构来组织的,操作键值对最终就是对数据结构进行增删改查操作,所以高效的数据结构是 Redis 快速处理数据的基础。redis中的数据结构哈希表redis中的哈希表为什么慢怎么解决呢?渐进式rehash压缩列表跳表小结简单来说,Redis底层结构有5种,分别是简单动态字符串、压缩列表、双向链表、哈希表、跳表和整数数组。.

2020-10-29 23:56:37 210

原创 Mysql事务隔离级别介绍

事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 为什么被 InnoDB 取代的重要原因之一。事务隔离隔离级别隔离的实现隔离级别当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了

2020-10-27 23:06:17 126

原创 一篇搞懂mysql中的索引(大白话版)

一简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。Mysql中索引索引模型哈希表有序数组搜索树InnoDB 的索引模型主键索引和非主键索引的区别维护索引怎么选择索引,使用自增还是普通的业务索引?什么场景适合用业务字段直接做主键的呢?索引模型索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所以这里也就引入了索引模型的

2020-10-26 23:50:18 245

原创 怎么知道对象是否“没用”

对象是否没用对象是否死了引用计数可达性分析算法对象是否死了Java堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(没用引用)了。关于怎么知道对象是否可用在Java世界中有两种!引用计数所谓引用计数就是指在new Object()的时候,在对象中存放个计数值,有引用指向就加一,当引用消失是就减一,直到零就可以回收了。可达性分析算法...

2020-10-26 11:52:09 235 1

原创 redis数据库包含什么?基本架构

redis数据库包含什么??废话宏观感可以存什么数据?废话redis是不是超级快,是不是?为啥啊?为啥这么快哦,我也不知道,是不是缓存?是不是因为是基于内存的?好像有点道理,学了这么久redis啥都不是啥都不会啊!!!!救命!!!!!!宏观感构建redis时首先考虑到的应该时存什么样的数据。然后怎么操作数据,也就是数据模型和操作接口。了解了数据模型你就会知道为什么关系型数据库可以存的一些复杂数据也可以用redis这样的K,V存储了。但是啊 如果你只知道数据模型不知道操作接口的话,可能就没法理解

2020-10-24 11:30:48 468

原创 冯诺依曼体系结构 概要

冯诺·依曼体系结构 了解负责完成什么计算机五个部分组成运算器控制器存储器输入设备输出设备知识数学家冯诺依曼体提出计算机制造的三个条件:即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。计算机五个部分组成运算器主要完成算数运算。包含算数逻辑单元和处理器寄存器的处理器单元,用来完成各种运算,因为它可以处理和完成各种数据的计算工作,还被称为数据通路。控制器控制器负责指导运算器、存储器、输入输出设备能够按照

2020-10-23 11:47:57 1284

原创 关于对象(面试官喜欢问的无聊的问题)

关于对象的面试题对象的创建过程对象在内存中的布局普通对象数组对象对象头具体包括什么?先发布,后面还有几题整理下更新。对象的创建过程仅仅是创建:1.calss loading加载class文件2.linkingverification 检查class文件是否符合JVM规定resolution 将类、属性,转换成直接引用原有的是符号引用preparation 仅仅是给静态成员变量赋默认值3.Initializing 调用初始化方法给静态成员变量赋初始值前面三步 基本class已经加载完

2020-10-21 10:55:11 206

原创 DCL到底需不需要加volatile关键字

CDL到底需不需要加volatile关键字首先答案是肯定的!public class Singleton{ // 静态属性,volatile保证可见性和禁止指令重排序 private volatile static Singleton instance = null; // 私有化构造器 private Singleton(){} public static Singleton getInstance(){ // 第

2020-10-17 10:41:27 809

原创 简单易懂,ClassLoader

ClassLoader类加载器:Launcher父加载器双亲委派自定义类加载器Java类加载器是Java运行时环境的一个部件,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使用该类时才加载。由于有了类加载器,Java运行时系统不需要知道文件与文件系统。对学习类加载器而言,掌握Java的委派概念是很重要的。 每个Java类必须由某个类加载器装入到内存。(维基百科)类加载器:类加载器有两种:java提供的引导类加载器,虚拟机和用户自定义的类加载器,每个用户自定义的类加

2020-10-15 14:12:45 201

原创 重新认识IOC

你真的认识IOC吗?重新认识IOC什么是IOCIoC主要实现策略IoC容器的职责什么是IOCIOC是Inversion of Control的缩写,大多数书籍翻译成“控制反转”。控制反转的意思是说控制权被反转了:本来由对象自己去控制,现在交给容器控制。(以前创建对象时是自己通过new的方式主动去创建,但是由于控制器被反转交给容器后,某个对象需要另一个对象时不需要通过去new的主动创建对象,而是被动的等待容器为它创建对象) 这个也称之为好莱坞原则:好莱坞原则:不要来打电话给我(导演),我会打电话给你(演

2020-10-12 10:44:32 139

空空如也

空空如也

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

TA关注的人

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