自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (4)
  • 收藏
  • 关注

原创 服务器——那些年我踩过的坑

CentOS 7卸载firewalld防火墙命令systemctl disable firewalld# 只需要停止就输入下面一个systemctl stop firewalldsystemctl mask firewalldsystemctl disable firewalld.service原版bbr安装wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && c

2020-08-13 09:45:20 1440 1

原创 记录一次 Mysql主从同步搭建过程

Mysql主从同步搭建过程

2021-09-12 17:52:42 240

原创 Mybatis源码(1)数据源获取

Mybatis如何获取数据源

2021-08-05 09:10:01 296

原创 Mybatis源码学习

Mybatis源码 (1)1. 加载数据源最近开始学习 mybatis 源码,本地搭建了学习仓库,想省劲的直接下载就可以仓库地址先了解一下mybatis 的大致加载流程:加载配置文件解析xml,并创建Configuration对象,对象里面包含了 <configuration></configuration> 标签里面(即mybatis)的所有配置使用configuration创建SqlSessionFactory对象(实际是DefaultSqlSession

2021-08-05 01:49:29 329

原创 设计模式—工厂模式

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-11 20:49:08 156 1

原创 Netty(4)粘包半包与解决方案

粘包半包与解决方案一. 粘包半包现象分析二. 解决:1. 服务端设置固定报文大小2. 行解码器3. LTC解码器一. 粘包半包现象分析服务端代码: public static void main(String[] args) { // 创建线程组 // bossGroup 处理链接请求 // workerGroup 处理客户端业务逻辑 EventLoopGroup bossGroup = new NioEventLoopGroup();

2021-05-19 01:38:21 218 1

原创 Netty(3) ByteBuf

. ByteBuf网络数据的基本单位总是字节,ByteBuf是netty是对字节数据的封装ByteBuf API 的优点:它可以被用户自定义的缓冲区类型扩展通过内置的复合缓冲区类型实现了透明的零拷贝容量可以按需增长(类似于 JDK 的 StringBuilder)在读和写这两种模式之间切换不需要调用 ByteBuffer 的 flip()方法读和写使用了不同的索引支持方法的链式调用支持引用计数支持池化1. 组成ByteBuf 维护了两个不同的索引:一个用于读取,一个用于写入。从

2021-05-18 16:25:43 213

原创 Netty(2)Netty 组件

Netty组件一. EventLoop & EventLoopGroup1. EventLoop2. EventLoopGroup二. Channel1. ChannelFuture2. CloseFutureNetty核心组件为了后期更好地理解和进一步深入 Netty,有必要总体认识一下 Netty 所用到的核心组件以及他们在整个 Netty 架构中是如何协调工作的。Nettty 有如下几个核心组件:ChannelEventLoopHandlerPipeline一. EventL

2021-05-18 00:25:20 205 5

原创 Netty(1) 初识Netty

初识Netty 一. Netty是什么?1. Netty 可以做什么?2. Netty 的特点?1. 设计2. 高性能3. 健壮性4. 安全性5. 社区活跃3. 如何使用 Netty二. Netty服务端代码三. Netty客户端代码一. Netty是什么?Netty 是一个基于Nio(同步非阻塞)的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端1. Netty 可以做什么?游戏服务器开发RPC框架开发 例: 分布式开源框架中dubbo、Zookeeper,R

2021-05-17 01:45:14 101

原创 再战JVM (9) 垃圾收集器

垃圾收集器一. Serial 收集器优点 & 缺点二. Serial Old 收集器三. ParNew收集器优点 & 缺点四. Parallel Scavenge 收集器优点 & 缺点五. Parallel Old 收集器总结:六. CMS收集器优点 & 缺点七. G1 收集器如果说收集算法是内存回收的方法论,那么垃圾收集器则是内存回收的具体实现。一. Serial 收集器Serial(串行)收集器是最基本、发展历史最悠久的收集器,它是采用复制算法来回收新生代的收集器,

2021-04-29 00:56:59 131 1

原创 再战JVM (8) 垃圾收集算法

垃圾收集算法

2021-04-20 01:25:45 117

原创 再战JVM (7) 对象的创建过程

对象的创建过程

2021-04-10 21:35:15 115

原创 再战JVM (6) 运行时数据区-方法区

运行时数据区-方法区

2021-04-10 00:29:43 112

原创 再战JVM (5) 运行时数据区-堆

运行时数据区-堆一. 堆?二. 堆的分代收集1. 分代收集理论2. 为什么要有Survivor区?3. 为什么要设置两个Survivor区4. Survivor为什么不分更多块呢?三. 对象的内存分配一. 堆?堆是运行时数据区域中最大的一块,也是垃圾收集器的重点对象“几乎” 所有类的实例和数组的内存都在这里分配堆随着虚拟机启动而创建,并且空间大小在启动时就确定了堆在物理内存中不一定是连续的,但他在逻辑上被视为连续的堆是所有线程共享的,但是他可以划分线程私有的缓冲区(Threa

2021-04-09 13:15:43 141

原创 再战JVM (4) 运行时数据区-虚拟机栈

虚拟机栈一. 虚拟机栈二. 局部变量表三. 操作数栈1. sum方法:2. getI 方法:3. 特点:四. 动态链接五. 方法返回地址六. 附加信息一. 虚拟机栈特点:每创建一个线程,就会创建栈线程私有每个方法执行的时候,Java虚拟机都会同步创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息虚拟机只会直接对虚拟机栈执行两种操作:以栈帧为单位的压栈和出栈栈顶位置的栈帧为当前栈帧,所属的方法为正在执行的方法 也叫 当前方法Java方法可以以两种方式完成。一种通过retur

2021-04-07 23:58:31 113

原创 再战JVM (3) 运行时数据区-程序计数器

程序计数器

2021-04-06 21:15:03 113

原创 再战JVM (2) 双亲委派机制

双亲委派机制

2021-04-06 21:02:46 115 2

原创 再战JVM (1) 类加载过程

类加载过程一. 类加载过程二. 加载1. 加载过程2. 加载class文件的方式三. 连接1. 验证2. 准备3. 解析1. 类或接口的解析2. 字段的解析3. 方法解析一. 类加载过程类加载过程可以分为三个阶段加载(Loading)连接(Linking)a. 验证(Verify)b. 准备c. 解析初始化(Initialization)下面这图是类的生命周期图,这里只看初始化以及之前的过程二. 加载1. 加载过程通过一个类的全限定名获取定义此类的二进制字节流通过类加载器

2021-04-05 15:25:41 2388 8

原创 分布式系统(4)分布式事务

分布式事务一. 什么是分布式事务二. 分布式事务理论1. CAP 理论2. CAP为什么不能同时满足3. CP,AP还是CA3.1 舍弃A,保留CP3.2. 舍弃C,保留AP3.3 舍弃P,保留CA4. BASE 理论三. 分布式事务实现方式1. 2PC(两阶段提交协议)1.1 两阶段提交的基本思想1.2 两阶段提交的基本流程1.3 两阶段提交出现的问题1.3 两阶段提交出现的问题1.3.1 如果协调者挂了1.3.2 如果协调者在发送准备命令之前挂了,事务未开始状态1.3.3 如果第一阶段有参与者返回失败1

2021-03-31 01:07:08 2213 1

原创 分布式系统(3)消息中间件 rabbitMq

这里写自定义目录标题

2021-03-30 01:44:36 234

原创 分布式系统(2)单点登陆解决方案

分布式单点登陆解决方案一. 简介二. 登陆服务实现三. 客户端实现一. 简介单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,包含单点登录和单点注销两部分相比于单系统登录,sso需要一个专门的登录中心,多个系统应用中的登录都在登陆中心实现,sso登录中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,令牌作为参数发送给各个子系统,子系统拿到令牌,可以借

2021-03-22 02:23:46 1068

原创 分布式系统(1)Redisson实现分布式锁

分布式锁一. 引入Redisson1.1 Redisson介绍1.2 Maven坐标1.3 配置文件二. 测试1. 基本测试1.1 这个代码存在死锁么?1.2 看门狗原理三. 进阶3.1 读写锁3.2 读写锁规律3.3 闭锁3.4 信号量测试一. 引入Redisson1.1 Redisson介绍Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。Redisson 可以

2021-03-18 10:20:44 167

原创 汇编 (3)寄存器 (内存访问)

汇编 (3)寄存器 (内存访问)一. 内存存储1. 内存中字的存储二. DS和[address]一. 内存存储1. 内存中字的存储在0地址处开始存放20000(4E20H):0号单元是低地址单元,1号单元是高地址单元任何两个地址连续的内存单元,N号单元和 N+1号单元,可以看成一个地址为N 的字单元中的低位字节单元和高位字节单元二. DS和[address]...

2021-02-14 19:05:59 470

原创 汇编 (2)寄存器 (cpu工作原理)

汇编 (2)寄存器 (cpu工作原理)一. CPU概述二. 寄存器概述2.1 通用寄存器2.2 字在寄存器中的存储三. 简单的汇编指令一. CPU概述一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连内部总线实现CPU内部各个器件之间的联系外部总线实现CPU和主板上其它器件的联系二. 寄存器概述拿8086cpu为例,他有14个寄存器 它们的名称为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW2.1 通用寄存器8086

2021-02-09 21:25:00 587

原创 汇编(1)初识汇编

汇编(1)

2021-02-08 19:38:56 253

原创 mfc (1)

QT mfc一. 概述二. 人生第一个mfc程序一. 概述微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类二. 人生第一个mfc程序...

2021-02-03 21:42:16 370 2

原创 QT(2)事件

QT 鼠标事件监听

2021-01-31 16:30:38 136

原创 QT(1)

QT一. QT介绍1.1 下载安装二. 人生第一个QT程序2.1 项目目录2.2 测试,运行空项目2.3 添加代码2.4 运行结果:三. 信号和槽3.1 基本案例3.2 自定义信号 和 槽3.2.1 在项目中创建 自定义槽 类3.2.2 在自定义槽 类中定义 槽函数3.3.3 连接信号 和 槽3.3.4 运行结果一. QT介绍Qt是一个针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackB

2021-01-28 21:17:11 319

原创 C++ 基础(6)STL常用容器

STL 常用容器一. 容器基本概述二. vector1. vector 初始化2. 常用函数3. 遍历三. deque四. map一. 容器基本概述STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便使用。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stack)二. vector使用它时需要包含头文件:#include<vector>vector 的优点:指定一块如同数组

2021-01-26 01:53:11 314

原创 C++ 基础(5) 模板

C++ 模板一. 概念二. 函数模板2.1 语法2.2 案例2.3 注意事项2.4 案例:利用模板封装一个数组排序的函数2.5 普通函数与函数模板的调用规则2.6 模板的局限性三. 类模板3.1 语法3.2 类模板与函数模板区别3.3 类模板中成员函数创建时机3.4 类模板对象做函数参数3.5 类模板与继承3.6 类模板成员函数类外实现3.7 类模板成员函数类外实现3.7.1 编写.h头文件3.7.2 编写.cpp 实现3.7.2 测试代码3.7.3 原因3.7.4 解决方案3.8 类模板与友元3.8.1

2021-01-22 00:26:08 217

原创 C++ 基础(4) 运算符重载

C++ 运算符重载一. 概述1.1 为什么使用操作符重载?1.2 C++哪些运算符允许重载1.3 重载运算符的限制二. 使用重载运算符2.1 重载 自定义对象的 `+` 运算符2.2 重载`<<`运算符2.3 重载 `++i`运算符2.3 重载 `i++`运算符2.4 重载 `=`运算符2.4 重载 `==`运算符2.5 重载 `()` 函数调用运算符一. 概述C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我

2021-01-19 01:32:38 221

原创 C++ 基础(3)引用

C++ 引用1. 概述二. 引用的应用2.1 引用作为函数参数2.2 常引用2.3 引用作为返回值三. 引用总结1. 概述引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样引用的实质是对一个内存空间起别名例: int a = 1; // 变量类型 &引用名 = 变量名 int &t = a; cout << a << endl; // 1 cout << t << endl; // 1 t = 10;

2021-01-18 20:14:01 176

原创 C++ 基础(2) 程序的内存模型

C++ 程序的内存模型一. 代码区二. 全局区三. 栈四. 堆五. new关键词C++的内存模型分为四大区代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收一. 代码区存放CPU执行的机器指令代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可代码区是只读的,使其只读的原因是防止程序意外修改了它的指令

2021-01-17 21:32:16 136 3

原创 C++基础(1) 指针

C++ 指针一. 指针基本概念二. 变量指针内存 三者之间的关系1. 变量在内存中的存储2. 指针在内存中的存储三. 指针使用1. 定义指针对象2. 获取指针指向的数据3. 指针值的状态4. 指针的算数运算四. 函数和指针4.1 函数的参数和指针五. const 和指针5.1 指向常量的指针5.2 常量指针一. 指针基本概念指针是另外一种类型的复合类型,复合类型是指基于其它类型定义的类型 (意思是说指针是指向什么类型,那么指针本身就是什么类型)指针其实就是程序数据在内存中的地址,而指针变量是用来保存这

2021-01-17 00:01:34 357

原创 EffectiveJava第二章内容总结

创建和销毁对象一. 用静态工厂方法代替构造器1. 静态方法对比构造器的优势1.1 他们有名字1.2 不用在每次调用的时候创建新对象1.3 可以返回原返回类型的任意子类型对象1.4 返回对象的类可以随着每次调用发生变化(取决于静态工厂方法的参数值)1.5 方法返回的对象所属的类,在编写包含该静态工厂方法时可以不存在2. 静态方法对比构造器的缺点2.1 类如果不含公有的或受保护的构造器,就不能被子类化2.2 程序员很难发现他们二. 遇到多个构造器参数时要考虑使用构建器1. JavaBeans模式2. Build

2021-01-10 22:23:01 267

原创 Elasticsearch 笔记(3)

Elasticsearch整合 springboot一 .导入依赖 <properties> <java.version>1.8</java.version> <elasticsearch.version>7.4.2</elasticsearch.version> </properties> <dependency> <gr

2020-12-17 01:21:14 108

原创 Elasticsearch 笔记(2)

Elasticsearch进阶

2020-12-14 18:03:13 121 1

原创 Elasticsearch 笔记(1)

Elasticsearch简介Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据

2020-11-30 23:36:10 117

原创 Quartz 定时任务 (3) —— 解决spring 无法注入

解决service无法注入原因是job的实现类是在quartz中实例化出来的,不受spring的管理。所以就导致注入不进去了1. 创建job工厂类@Componentpublic class JobFactory extends AdaptableJobFactory { /** * AutowireCapableBeanFactory接口是BeanFactory的子类 * 可以连接和填充那些生命周期不被Spring管理的已存在的bean实例 */ pr

2020-11-28 12:55:03 920 3

原创 Quartz 定时任务 (2) —— 事件监听器

一、TriggerListener 触发器监听器跟触发器有关的事件包括**:触发器被触发,触发器触发失败,以及触发器触发完成**(触发器完成后作业任务开始运行)1. TriggerListener 接口源码public interface TriggerListener { String getName(); void triggerFired(Trigger var1, JobExecutionContext var2); boolean vetoJobExecution(T

2020-11-28 12:42:02 1607 1

录屏&amp;截图软件.rar

录屏&amp;截图的小软件 很轻 很好用

2021-04-02

win10关闭系统更新.rar

win10 屏蔽系统更新

2021-04-02

2020谷粒商城分布式基础篇课件资料.rar

谷粒商城是一个类似京东的自营商城平台,由业务集群系统+后台管理系统构成。 谷粒商城打通了分布式开发的全栈技能,包含前后分离全栈开发、Restful接口、数据校验、网关、注册发现、配置中心、熔断、限流、降级、 链路追踪、性能监控、压力测试、系统预警、集群部署、持续集成、持续部署。 谷粒商城分为三个部分:分布式基础、分布式高级、高可用集群部署 分布式基础篇:使用SpringBoot+Vue+逆向工程搭建全套后台管理系统,使用前后分离方式,以商品系统为例,手把手教大家进行全栈开发。 分布式高级篇:开发整个商城系统,使用SpringBoot+SpringCloud并配套SpringCloud

2020-11-18

Java调用微信支付案例源码

Java调用微信支付案例源码,和我博客的源码一样的,不喜欢敲的直接下载我这个源码回去改造,就可以用,maven项目

2020-06-18

空空如也

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

TA关注的人

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