自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Seate分布式事务

1.架构图TM(Transaction Manager)发送提交/回滚命令这个模块是全局事务管理器,负责开启全局事务、提交全局事务、回滚全局事务、查询全局事务的状态、上报本地事务状态等。(TransactionManager.java)RM(Resource Manager)执行提交/回滚操作这个是资源管理器,负责分支事务注册、分支事务提交、分支事务回滚、锁查询等操作。(DefaultResourceManager.java)TC (Transaction Coordinator)

2022-03-01 15:12:30 3878

原创 ES-基本使用

1.下载官网:https://www.elastic.co/cn/start推荐Kibana可视化工具kibana启动之后,访问链接测试http://localhost:5601/2.简介 索引(index):索引是映射类型的容器,它是一个非常大的文档集合,索引存储了映射类型的字段和 其他设置。 类型(type):类型是文档的逻辑容器,就像关系型数据库一样 文档(document):一个文档同时包含字段和对应的值,也...

2022-02-28 18:14:42 774

原创 Tree树

树的存储方式都是以链表的方式来实现的1.二叉排序树1.1若左侧不为空,则左边的所有节点的值都小于它的根节点的值1.2若右侧不为空,则右边的所有节点的值都大于或等于它的根节点的值1.3因此左右两侧也称为二叉排序树问题:当二叉排序树两侧不平衡时,那么树的作用不就没有意义了吗根据以上问题,衍生出了平衡二叉树 2.平衡二叉树任意子节点的高度差都要小于等于1 那...

2022-02-23 11:24:41 265

原创 Dubbo

1.RPC介绍RPC(Remote Procedure Call)远程过程调⽤,简单的理解是⼀个节点请求另⼀个节点提供的服 务客户端(Client):服务调⽤⽅。客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成⽹络消息, 再通过⽹络传输发送给服务端。服务端存根(Server Stub):接收客户端发送过来的请求消息并进⾏解包,然后再调⽤本地服务进⾏ 处理。服务端(Server):服务的真正提供者。Netwo...

2021-12-09 16:08:32 1224

原创 Kafka

1.下载/安装下载地址:Kafka解压: tar -zxf 文件名3启动Zookeeper:bin\windows\zookeeper-server-start.bat config\zookeeper.properties启动kafka:bin\windows\kafka-server-start.bat config\server.properties2.简介kafka是一个分布式的基于发布/订阅的消息引擎系统 2.1结...

2021-12-03 15:41:11 649

原创 RocketMQ

1.安装部署 windows环境演示: 官方地址:https://rocketmq.apache.org/release_notes/release-notes-4.3.2/ 配置rocketMq环境变量 启动nameserver命令:start mqnamesrv.cmd启动broker:start mqbroker.cmd验证是否启动成功: jsp -l​以上来看,我们nameserver以及...

2021-12-02 16:04:42 658

原创 Redis

1.Redis对象数据类型 String: 字符串 list: 列表 set: 去重集合 zset: 有序列表 hash: 字典2.编码类型encoding常量 底层的数据结构 REDIS_ENCODING_INT long类型的整数 REDIS_ENCODING_EMBSTR embstr编码的简单字符串 REDIS_ENCODING_RAW 简单动态字...

2021-10-27 11:46:34 55

原创 Mysql

1.Page--页 为了避免一条一条读取磁盘数据,InnoDB采取了Page(页)的方式作为磁盘和内存之间交互的基本单位 一页的大小一般是16KB 那么我们来看看Page的结构以上就是Page的基本结构,可以看出我们目前最关心的User Record(我们insert的记录)在page中是什么方式存储的 首先我们会申请一个Page的空间内存,那么我们User Record肯定为空,然后所有的都是Fr...

2021-10-15 15:42:29 126

原创 JVM内存模型

jvm基本结构类加载子系统: 将class文件加载到jvm中方法区: 加载class信息/运行时常量池存放在方法区java堆: 基本上所有的java实例/对象都是存放在java堆中方法区以及java堆都是公有java栈: 普通方法的一些信息(方法入参/局部变量/中间临时数据/返回数据/异常状态处理)都是存放在栈中(私有)本地方法栈: 类似java栈,不过不是普通方法而是nativeMethod寄存器:用来指向正在被执行的位置直接内存: 对外内存,向系统申请内存空间(与jav

2021-10-14 13:33:11 75

原创 SpringBoot笔记

spring官网:https://spring.io/maven管理:@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}从以上来看,我们已经把一个springboot项目构建完毕了,那么我们的依赖里面并没有

2021-09-10 11:28:36 61

原创 Mybatis源码---个人总结

Mybatis操作数据库主要步骤 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(2L);1.通过动态代理获取Mapper对象从debug可以看出,knownMapper已经初始化代码中所有的mapper对象具体如何初始化数据后续作答从MapperProxyFactory的实例化方法中可以看出,所有的Mapp..

2021-09-02 17:36:26 271

原创 JDK1.8---reduce和collect聚合函数

reduce和collect都是一种聚合操作。本篇文章就是reduce和collect聚合函数自定义静态方法实现reduce实现filterprivate static <T> List<T> reduceFilter(List<T> list, Predicate<T> p){ List<T> ret = new ArrayList<>(); return list.stream().

2021-08-27 17:33:57 374

原创 HashMap扩容resize流程

resize函数触发时机:1.初始化HashMap的默认扩容一个cap为16 threshold为12的Node<K, V>[] newTab2.当hashMap的size>threshold的时候再次扩容,扩容为16*2的cap,threshold*2的Node<K, V>[] newTab3.当table中Node链表大于8且tab.length小于64的时候,hash再次double扩容下面直接上流程图第一阶段:主要为计算出新的newCap(扩容.

2021-08-20 14:27:51 1839 1

原创 HashMap数据插入put

hash:hash值value:存储元素key:键onlyIfAbsent:如果是true,则不改变已存在的value值tab:数组+链表 数组index定位链表所在位置p:链表 存储的数据从源码可以看出第一次tab为空,tab需要默认resize()扩容一次,第一次扩容的长度为16Node<K, V>[] tab扩容原理这里暂不做解释hashMap第一次put数据tab[hash& (length-1)]定位数组是否存在no...

2021-08-19 16:17:40 241

原创 HashMap扰动函数

可以从源码中看出hash值都是通过与自身值异或和自身异或hash& (length-1);hash求余之后将hash值减小,为了避免hash碰撞(求于之后就有两个hash值相等),这个时候需要扰动函数扰动函数:计算出来的hash值更加不确定还减少hash碰撞扰动函数原理:扰动函数————(h = key.hashCode()) ^ (h >>> 16) 表示: 将key的哈希code一分为二。其中: 【高半区16位】...

2021-08-19 14:40:21 2164

原创 LinkedList个人心得

add操作:默认在linkedList新增在最后一个LinkedList里面只记录first(第一个节点元素)和last(最后一个节点元素)node节点中关联pre(上一个节点元素)和next(节点元素)该Node节点实际就是整个LinkedList的承载器,可以理解为ArrayList的elementData从Node该类可以看出LinkedList底层是链表原理(前置和后置节点关联)由此可以看出LinkedList适用于新增/修改,只需要关联节点的左右...

2021-08-18 11:18:13 82

原创 ArrayList个人心得

字段:size并不代表elementData的长度,代表ArrayList的元素数量构造:从无参构造可以看出ArrayList底层走的数组原理,ArrayList的操作都是由elementData来记录Add操作:从add方法看出,elementData[size++]才是真正的新增操作,ensureCapacityInternal(size + 1)实际是为了给elementData数组扩容操作扩容原理:扩容之前为了计算出ArrayL...

2021-08-17 15:01:11 197

空空如也

空空如也

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

TA关注的人

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