自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 【MySQL】引擎InnoDB和MyISAM的区别

功能 MyISAM InnoDB 支持事务 No Yes 支持全文索引 Yes No 支持数据缓存 No Yes 保存表的总行数 根据where确定 全表或全索引扫描确定 存储限制 256TB 64TB 支持树索引 Yes Yes 支持Hash索引 No No

2023-06-25 18:30:06 166

原创 【SSO】单点登录方案

当用户发起支付时(③),支付系统会请求Session进行认证(④),Session认证成功后返回认证信息给支付系统(⑤),支付系统完成支付并返回支付信息给商品系统(⑥),从而完成整个购买支付流程。(1)用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数;(4)sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌;(11)sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌;(9)用户访问系统2的受保护资源;

2023-06-25 12:39:53 424

原创 【Activiti】原理

(4)使用RepositoryService部署流程:相当于使用RepositoryService操作数据库。(1)编写bpmn文件,画流程图,在application.yml配置文件中【process-definition-location-prefix】标明需要扫描的流程图路径;(7)根据流程定义处理人等查询,并根据任务ID完成任务:taskService.complete()。(5)启动流程【RuntimeService】;(6)创建任务【TaskService】;(2)创建流程引擎;

2023-06-25 11:50:57 569

原创 【Spring】AOP原理

(1)准备阶段:bean代理前的准备;(2)切面解析阶段:判断是否基础bean→找到所有切面→为每个通知生成Advisor(代理);(3)创建动态代理阶段:判断→匹配(筛选)→jdk/cglib代理;(4)调用动态代理阶段:获取并应用代理→转化成Interceptor→递归调用invoke()等。

2023-06-20 10:43:45 1026

原创 【Redis】哨兵机制

哨兵集群选举:哨兵集群只有一个哨兵节点,redis的主从也能正常运行以及选举master,如果master挂了,那唯一的那个哨兵节点就是哨兵leader了,可以正常选举新master。不过为了高可用一般都推荐至少部署三个哨兵节点。哨兵模式时给予主从模式的,是为了解决主从模式单点(master)故障导致服务不可用的问题,但并未解决单节点存储能力有限的问题。(3)选择与原master断开时间短的,过滤掉断开时间长的;(1)选择在线的节点,过滤掉已经下线的节点;(2)选择响应速度快的,过滤掉响应慢的节点;

2023-06-17 21:48:48 2511 1

原创 【Redis】主从架构

主从架构原理二、短暂死机的主从复制原理三、避免复制风暴

2023-06-17 20:52:55 33

原创 【Redis】持久化机制

AOF方式持久化会将每一条修改指令追加到appendonly.aof文件中,每隔一段时间fsync到磁盘。注:两者可以都启用。Redis启动时如果既有rdb文件又有aof文件则。恢复数据,因为aof一般来说数据更安全一点。之前的内存做RDB快照存储。增量的AOF文件写入。

2023-06-17 19:52:00 936

原创 【Redis】五种数据结构

在内存种种存储形式如下:

2023-06-17 19:02:08 68

原创 【Spring】循环依赖

bean需要在实例化后进行代理,所以此处存放函数接口,在实例化时执行代理,进行解耦。一级缓存的方式无法保证多线程下的一级缓存Bean的完整性,可以用加锁的方式来解决此问题。

2023-06-15 15:39:46 768

原创 Map接口源码

/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package java.util;import java.util.f.

2023-06-15 15:01:42 62

原创 【MySQL】sql如何优化?

index:扫描全索引拿到结果,一般是扫描某个二级索引(唯一索引、普通索引、前缀索引等索引属于二级索引)。聚簇索引:正文内容就是按照一定规则排序的目录,如B+树,按照索引排序,一个表只能有一个,存储记录物理连续。非聚簇索引:目录是目录,正文纯粹是正文,不按照索引排序,一个表可以有多个,存储记录物理不连续。主键索引:特殊的唯一索引,一个表只能有一个主键索引,且不能有null值。联合索引:在多个字段上创建索引,遵循最左前缀原则。system/const:如id=1这种。唯一索引:索引值唯一,允许有null值。

2023-06-14 15:24:35 2241

原创 【MySQL】为什么MySQL选择B+Tree来做索引?

(3)其他特点:B树不方便范围查找,B+树叶子节点方便范围查找(B+叶子节点间有关联指针,但非叶子节点没有)。(1)存储量大:B树叶子及非叶子节点存索引+数据,B+树叶子非叶子节点存索引,叶子节点存数据;

2023-06-10 19:46:55 151

原创 【SpringMVC】拦截器和过滤器之间的区别

进入Servlet之后,进入Controller之前进行拦截。进入Servlet之前和出Servlet之后过滤。不可以访问IOC容器中的bean。不能访问action上下文、栈。可以访问action上下文、栈。可以访问IOC容器中的bean。只能在容器初始化时被调用一次。过滤URL、文字、静态资源;只对action请求起作用。基于反射机制(动态代理)不依赖Servlet容器。依赖Servlet容器。对几乎所有的请求起作用。action生命周期。

2023-06-10 17:53:06 500

原创 【Springcloud】SpringCloud的五大组件

Hystrix(Netflix组件)、Sentinel(阿里的组件)、Resilience4j。

2023-06-10 16:20:47 474

原创 【SpringMVC】请求流程

2023-06-09 11:24:50 30

原创 【并发编程】Lock/ReetrentLock的原理

参考《》。

2023-06-08 18:10:25 38

原创 【并发编程】volatile底层原理

MESI缓存一致性协议。

2023-06-08 15:10:34 53

原创 【并发编程】线程与线程池

单例线程池、固定线程池、缓存线程池、定时线程池。实现Runnable接口。,重写run()方法;

2023-06-08 14:43:29 34

原创 【Java基础】序列化和反序列化

【代码】【Java基础】序列化和反序列化。

2023-06-07 23:57:48 43

原创 【Java基础】IO流

2023-06-07 21:47:27 28

转载 【Java基础】常见的排序(效率)

注意一点,如果分界点选为数组中第一个元素,按照上述方法进行排序,也就是从小到大,需要先移动右指针再移动左指针,因为如果左右指针不满足l<r时,也就是l=r时,此时l指向的仍然是小于分界点的数,所以直接让分界点与左指针交换即可。否则当l=r时,i指向的可能是大于分界点的数,如果交换的话,就破坏了顺序。希尔排序是插入排序的变种,是将整个数组按照步长进行分组,比如说步长是4数组就被分为ABCDABCD,步长是2则数组就被分为ABABABABAB,每个组中进行插入排序,直到步长为1时,排序完就是顺序的了。

2023-06-07 21:13:57 283

原创 【Spring】循环依赖原理

2023-06-07 15:52:27 25

原创 【Springboot】启动原理

后面需要补充完整的启动流程图...(主要的过程而非源码执行流程)

2023-06-07 15:32:02 25

原创 【Springboot】自动装配原理

2023-06-07 15:18:54 22

原创 【并发编程】AQS原理

AQS(AbstractQueueSynchronizer)内部维护了一个CLH等待队列,队列中的每个节点都单独封装了一个访问共享资源的线程,每个节点都维护了一个状态属性。当多个线程访问共享资源时,未获得该资源的线程会被放入CLH队列节点中以此保证共享资源的访问顺序。节点的状态跟踪线程是否阻塞,当前节点被处理完共享资源释放时,会通过状态唤醒此节点的下一个节点继续执行。

2023-06-07 15:15:28 121

原创 【Java基础】集合List/Set/Map

jdk1.7及其之前:数组+单向链表(有扩容死锁问题)jdk1.8及其之后:Node 数组 + 单向Node链表 + 红黑树。

2023-06-06 16:18:34 333

原创 【并发编程】synchronized原理

图片链接:锁的升级(synchronized关键字)| ProcessOn免费在线作图,在线流程图,在线思维导图

2023-06-06 14:47:49 31

原创 【Java基础】字符串

即通过此构造方法创建的String对象只有一个。比如:String str = new String(new char[]{'1'}, 0, 1)。(1)在字符串常量池中查找是否有此字符串(“11”),如果有则返回对应的String对象地址;如果没有则在字符串常量池中创建String的OopDesc对象和char数组的TypeArrayOopDesc对象;所以new String("11")会创建出来两个String的OopDesc对象和一个char数组的typeArrayOopDesc对象。

2023-06-06 14:36:39 27

原创 【JVM】垃圾回收机制

垃圾回收三大步骤:判断是不是垃圾() -> 标记需要回收的垃圾() -> 回收垃圾(

2023-06-06 13:35:02 595

原创 【JVM】什么是双亲委派机制?

(1)当加载一个类时,先判断此类是否已经被加载,如果类已经被加载则返回;(2)如果类没有被加载,则先委托父类加载(父类加载时会判断该类有没有被自己加载过),如果父类加载过则返回;如果没被加载过则继续向上委托;(3)如果一直委托都无法加载,子类加载器才会尝试自己加载。注:jre/lib包下的jar在JVM启动时就已经被加载到虚拟机中了,当外部定义的[包路径+类名]和jre/lib包下的jar中类一样时,由于父加载器检测此类名已经被加载,所以会拒绝加载。

2023-06-02 18:53:07 7277 2

原创 【JVM】.class文件如何在JVM中运行的?

线程私有(与线程同寿),每个方法都对应一个栈帧,方法中的操作等都在栈帧中进行。】将.class文件转化成二进制字节流,并加载到运行时数据区(.class信息存在【】中操作:将方法的变量依次存入栈帧中并根据操作进行出栈入栈等操作;(5)如果方法中创建了对象,则对象一般会分配到【:线程私有,存储native修饰的方法信息;(4)如果方法中调用了本地方法,则会调用在【,存储Class信息、常量、静态变量等等;:线程私有,记录指令执行的位置。(6)当堆上的对象不再使用时,【(3)执行方法时,会在【

2023-06-02 16:41:27 654

原创 【JVM】.class类文件是如何被加载的?

当且仅当父类(接口除外)中定义的变量被使用时才出发父类的初始化。(1)类构造器()会手机所有变量的赋值动作(类成员赋值、静态代码块中的赋值)并进行赋值。:本质上是执行类构造器()方法的过程,生成的静态变量和代码中定义的保持一致。:根据类的成员属性分配内存;(4)符号引用验证:解析阶段验证直接引用和间接引用是否合法。(2)元数据验证:验证字节码的是否符合java语法规范;(3)字节码验证:验证字节流中的语义是合法的;中的obj替换成此对象的在堆中的实际内存地址。

2023-06-02 16:00:57 747

原创 HashMap 源码分析

/////////////////////////////// 注:我将HashMap重新写到自定义的com.test.util包下,并删减修改了部分内容,以保证它可以供我测试,并添加了注释 ///////////////////////////////////////////////package com.test.util;import java.io.Serializable;import java.util.Collection;import java.util.Iterator;i

2020-11-27 18:57:04 109 2

原创 Map接口源码分析

package java.util;import java.util.function.BiConsumer;import java.util.function.BiFunction;import java.util.function.Function;import java.io.Serializable;/** * 1.概述 * (1) 实现键值对映射的对象。Map存放的键值对(key-value)中,不能包含重复的键(键可以为null);每个键最多只能映射到一个值。 * .

2020-11-24 18:16:14 166

原创 Spring源码解析 - SingletonBeanRegistry 接口

package org.springframework.beans.factory.config;import org.springframework.lang.Nullable;/** * 1.概述 * 定义单例bean的接口 * 2.子接口 * ConfigurableBeanFactory: * 3.子实现类 * ConfigurableBeanFactory: * DefaultSingletonBeanRegistry: * 3.包含的方法: * .

2020-10-15 11:48:52 185

原创 Spring源码解析 - BeanFactory 接口

package org.springframework.beans.factory;import org.springframework.beans.BeansException;import org.springframework.core.ResolvableType;import org.springframework.lang.Nullable;/** * 1、概述 * BeanFactory是访问Spring Bean容器的根接口,实现此接口的类可以生成BeanDefiniti.

2020-10-14 20:20:59 264

原创 Spring源码解析 - AliasRegistry 接口

package org.springframework.core;/** * 别名注册接口:用于管理别名的公共接口 */public interface AliasRegistry { /** * 给定一个名字,为它注册一个别名 * @param name 参数名称 * @param alias 要注册的别名 */ void registerAlias(String name, String alias); /** .

2020-10-13 14:25:18 119

原创 第六节 执行引擎

一、字节码执行引擎概述1、虚拟机和物理机执行引擎的区别虚拟机和物理机都具有代码执行能力。物理机的执行引擎建立在处理器、硬件、指令集和操作系统层面的。而虚拟机的执行引擎由自己实现的,可以自行制定指令集和执行引擎结构体系,并且能够执行那些不被硬件直接支持的指令集格式。2、JVM执行引擎不同的虚拟机里面,可以单一或同时支持解释执行和编译执行。所有的JVM虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程字节码解析的等效过程,输出的是执行结果。二、运行时栈帧结构1、概述栈帧是一种支

2020-09-16 19:06:03 141

原创 第五节 字符串底层实现

一、常量池1、常量池分类(1)class文件中的常量池:存在于硬盘上,使用命令“javap -verbose”可以查看;(2)运行时常量池:InstanceKlass的一个属性,ConstantPool* _constants,存放在方法区(元空间);(3)字符串常量池:String Pool,存在于堆区,底层是StringTable,StringTable继承自HashTable。二、StringTable1、StringTable类的继承关系(Hasht...

2020-09-16 18:55:38 500

原创 第四节 JVM运行模型

一、内存池与JVM内存模型1、class文件在JVM中的运行图2、JVM内存模型和JMM(Java Memory Model)的区别(1)JMM:Java内存模型,用于多线程之间的线程通信。(2)JVM内存模型:包含程序计数器、虚拟机栈、本地方法栈、堆、方法区。在JVM内部使用JMM将线程堆和堆之间的内存分开。3、Java代码执行顺序(1)首先将.java文件通过javac命令(javac.exe)编译成.class文件;(2)接着通过java命令(java.exe)执.

2020-09-16 18:45:12 237

UTF-8字符集汉字对照表.txt

此文本文档是UTF-8字符集中汉字编码对照表,可以用于查看某个汉字在UTF-8编码集中的位置。此编码集对照表非官网下载,如需使用,请提前预估风险。另外,此对照表只用于学习研究,如需用到其他地方,后果自负。

2019-11-09

sqlite3.rar

sqlite3.exe文件,主要用于解决idea中svn提交或者更新报错的问题

2019-08-22

空空如也

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

TA关注的人

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