自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (6)
  • 收藏
  • 关注

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

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 342 1

原创 设计模式—工厂模式

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

2021-06-11 20:49:08 63 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 17 1

原创 Netty(3) ByteBuf

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

2021-05-18 16:25:43 12

原创 Netty(2)Netty 组件

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

2021-05-18 00:25:20 40 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 30

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

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

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

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

垃圾收集算法

2021-04-20 01:25:45 27

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

对象的创建过程

2021-04-10 21:35:15 51

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

运行时数据区-方法区

2021-04-10 00:29:43 55

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

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

2021-04-09 13:15:43 54

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

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

2021-04-07 23:58:31 44

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

程序计数器

2021-04-06 21:15:03 45

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

双亲委派机制

2021-04-06 21:02:46 50 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 2159 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 1811 1

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

这里写自定义目录标题

2021-03-30 01:44:36 52

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

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

2021-03-22 02:23:46 152

原创 分布式系统(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 54

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

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

2021-02-14 19:05:59 74

原创 汇编(1)初识汇编

汇编(1)

2021-02-08 19:38:56 40

原创 mfc (1)

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

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

原创 QT(2)事件

QT 鼠标事件监听

2021-01-31 16:30:38 35

原创 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 84

原创 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 43

原创 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 120

原创 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 71

原创 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 23

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

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

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

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

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

2021-01-17 00:01:34 49

原创 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 95

原创 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 49

原创 Elasticsearch 笔记(2)

Elasticsearch进阶

2020-12-14 18:03:13 50 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 50

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

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

2020-11-28 12:55:03 316

原创 SpringBoot定时任务——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 286

原创 SpringBoot定时任务——Quartz (1)

一. 什么是QuartzQuartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态作业管理 - 对调度作业进行有效的管理Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 可以与 J2EE 与 J2SE

2020-11-28 12:40:48 46

原创 Docker安装各种软件(持续更新)

一. Elasticsearch安装dokcer pull elasticsearch:7.4.2mkdir -p /usr/local/elasticsearch/configmkdir -p /usr/local/elasticsearch/dataecho "http.host: 0.0.0.0" >> /usr/local/elasticsearch/config/elasticsearch.ymlchmod -R 777 /usr/local/elasticsearch/

2020-11-23 12:04:33 219

原创 Java多线程(9)ReentrantLock原理

上篇:Java多线程(8)线程池ReentrantLock原理继承关系ReentrantLock 在内部用了内部类 Sync 来管理锁,所以真正的获取锁和释放锁是由 Sync 的实现类来控制的。Sync 有两个实现,分别为 NonfairSync(非公平锁)和 FairSync(公平锁)。默认是非公平锁public ReentrantLock() { sync = new NonfairSync();}一. 加锁流程假设有两个线程,Thread-0和Thread-1,竞争同一个

2020-11-13 18:25:35 65

原创 Java多线程(8)线程池

上一篇:Java多线程(7)手写线程池JDK线程池 ThreadPoolExecutor多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力,但频繁的创建线程的开销是很大的,那么如何来减少这部分的开销了,那么就要考虑使用线程池了。线程池就是一个线程的容器,每次只执行额定数量的线程,线程池就是用来管理这些额定数量的线程。一. 线程池状态...

2020-11-11 23:06:00 44

Java调用微信支付案例源码

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

2020-06-18

Java架构师全套教程.txt

Java架构师全套教程,成为架构师,看这一套就够了 01.第一阶段、Svn版本管理与代码上线架构方案(经典) 02.第二阶段、实战Java高并发程序设计模式视频 03.第三阶段、深入JVM内核—原理、诊断与优化 04.第四阶段、基于Netty的RPC架构实战演练 05.第五阶段、Git分布式版本控制系统权威指南

2021-04-02

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

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

2020-11-18

录屏&amp;截图软件.rar

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

2021-04-02

win10关闭系统更新.rar

win10 屏蔽系统更新

2021-04-02

UploadUtil.java

Java文件上传工具类 都封装好了,拿来直接用 很好用的工具类

2020-07-03

空空如也

空空如也

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

TA关注的人 TA的粉丝

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