自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YZG ' BLOG

我亦无他,唯手熟尔

  • 博客(163)
  • 问答 (2)
  • 收藏
  • 关注

原创 图(存储、遍历、应用)

图的定义:G=(V,E),图是包含顶点和边的集合V:顶点(数据元素)的有穷非空集合E:边的有穷集合类似于下图,G1由 V1、V2、V3、V4 四个顶点,四条边组成,G2 由五个顶点,七条边组成。其中G1中的边带有方向称为有向图, 不带方向的称为无向图完全图:任意俩个点都有一条边相连稀疏图: 有很少的边或者弧(有向图的边)比较少的图(n< nlogn)稠密图: 有较多的边或者弧网: 边/弧 带权的图邻接: 边/弧相连的俩个顶点之间的关系, 表示有向,vi -> vj顶点的度。

2024-04-24 17:12:38 223

原创 RabbitMQ经典三问

的字段 , 当一条消息被多次消费 仍然不成功时,可以记录到日志中,由具体的开发人员分析到底是什么原因,具体分析!中插入一条记录时,设置一个过期时间,为了避免在执行完业务代码、更新业务状态时出现异常而导致重复消费。中插入一条记录,记录当前记录的状态为。但是它局限性比较大,仅能在数据库。当消费者开始消费的时候,先在。消费者消费能力不足积压。时生效,并且性能较低。

2024-04-10 23:10:12 567

原创 SpringCloudAlibaba基础使用(2024最全、最新)

Spring Cloud Alibaba 参考文档 (spring-cloud-alibaba-group.github.io)是什么Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。主要功能服务限流降级。

2024-04-09 12:09:38 896

原创 SpringCloud基础使用(2024最全、最新)

目前常用的组件:业务图模拟订单支付的简单业务1.1 环境搭建版本要求搭建Maven父工程一些Setting字符编码注解生效Java编译版本POM1.2 Mapper4一键生成创建一个名称为 的Maven工程引入 :创建配置文件properties:generatorConfig.xml一切就绪之后,双击插件即可:新建一个支付模块POMyaml配置文件PayServicePayServiceImplPayController主启动类PayDTO1.4 解决时间格式、同一返回结

2024-04-09 12:03:47 1050

原创 常用排序算法

假设对 {95、85、79、74、68、50、46} 这样的有序序列进行划分 ,那么在第一次划分后,会得到其中一个子序列的长度为0,这时其实就退化成了冒泡排序因此,

2023-09-14 22:36:49 356

原创 树和二叉树

树(Tree) 是 n (n>0) 个结点的有限集。若 n = 0,称为空树若 n > 0,则它满足如下两个条件:(1) 有且仅有一个特定的称为根(Root) 的结点(2) 其余结点可分为 m (m > 0) 个互不相交的有限集 T1, T2, T3,…Tm,其中每一个集合本身又是一棵树,并称为根的子树(SubTree)。为何要重点研究每结点最多只有两个“叉” 的树?二叉树的结构最简单,规律性最强可以证明,所有树都能转为唯一对应的二叉树: 不失一般性。

2023-09-14 22:33:59 383

原创 广义表基础知识

(3)广义表的深度定义为该广义表展开后所含括号的重数 A=(b,c) 的深度为1,B=(A,d) 的深度为 2,C=(f,B,h)的深度为3。(6)广义表是多层次结构,广义表的元素可以是单元素,也可以是子表,而子表的元素还可以是子表,可以用图形象地表示。: LS = (a1,a2,.....,an), LS为表名,n为表的长度,每一个 ai 为表的元素,一般用。如: F(a,F)= (a(a,(a ...)))例: D=(E,F),其中: E=(a(b,c)),F=(d(e)):“原子”的深度为 0;

2023-09-14 22:23:43 381

原创 栈和队列讲解

栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。因此, 对栈来说, 表尾端有其 特殊含义, 称为栈顶 (top), 相应地, 表头端称为栈底 (bottom/base)。不含元素的空表称为空栈。栈是按后进先出的原则进行的, 如 图(a) 所示。因此, 栈又称为后进先出 (Last In First Out, LIFO) 的线性表插入元素叫入栈(PUSH),删除元素叫弹栈(POP)栈与一般线性表的区别。

2023-09-14 22:20:27 113

原创 一篇带你搞懂KMP算法

T = "ABABA" 找出该模式串的 next[j](1)j = 1 时,next[1] =0(2)j = 2, j-1 子串 'A' 没有公共的前后缀,next[2] = 1j=3,j-1 子串 'AB' 没有公共的前后缀,next[3] = 1(3)j =4 , j-1 子串 'ABA', 存在公共前后缀为:'A' , 因此 next[j] = 2【时刻谨记 k 的值为:j-1子串的最大公共前后缀+1】

2023-08-09 23:14:49 99

原创 线性表详细讲解

线性表示具有相同特性的数据元素的一个有限序列线性表的例子:同一线性表中的元素必定具有相同的特性,数据元素间的关系是线性关系。线性表的定义ADT List {数据对象: D = {ai | ai ∈ ElemSet , i = 1 , 2 , … , n , n >= 0 } 数据关系: R =(< ai - 1 , ai > | ai - 1 , ai ∈ D , i = 2 , … , n } 基本操作: InitList(& L) 操作结果:构造一个空的线性表 L。

2023-07-30 17:24:25 318

原创 数据结构基础知识、名词概述

数据 (Data) 是客观事物的符号表示,是所有。如数学计算中用到的整数和实数,文本编辑中用到的字符串,多媒体程序处理的图形、 图像、声音及动画等通过特殊编码定义后的数据。数据元素(Data Element)是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。 在有些情况下,数据元素也称为元素、记录等。数据元素用于完整地描述一个对象,如图中的一名学生记录,树中棋盘的一个格局(状态),以及图中的一个顶点等。数据项 (Data Item) 是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生

2023-07-30 17:21:39 191

原创 第四章:文件

文件的物理结构: 文件的数据应该怎样存放在外存中。补充知识: 文件块、磁盘块类似于内存分页,磁盘中的存储单元也会被分为一个个 “块、磁盘块、物理块”、在很多操作系统中,磁盘块的大小与内存块、页面的大小相同原因很简单,内存、外存每次操作的单位一致的话,操作就会很方便。在内存管理中,进程的逻辑地址空间被分为一个一个页面同样的,在外存管理中,为了方便对文件数据的管理,文件的逻辑地址空间也被分为了一个一个的文件“块”于是文件的逻辑地址也可以表示为(逻辑块号,块内地址)的形式。

2023-07-21 10:04:55 95

原创 第五章:IO设备

1/0”就是“输入/输出” (Input/Output)IO 设备就是可以。

2023-07-20 15:46:11 236

原创 第三章:内存

内存可存放数据。程序执行前需要先放到内存中才能被CPU处理–缓和CPU与硬盘之间的速度矛盾B = 字节b = 比特位1B = 8b高级语言代码经过编译之后会生成对应的若干条指令,每一条指令可以理解为CPU做的一件事情【以下例子的指令是瞎写的,理解意思即可。】一条指令通常包含 操作码和地址码组成。操作码就是CPU执行的操作,地址码则是指明操作数的存储地址。对于第一条指令来说就是:将地址为79的数据10传送到地址为3的寄存器中。执行指令二,执行加法操作,对地址为3的寄存器中值10加1执行指令三,将地址3的寄存器

2023-07-19 09:20:57 98

原创 进程(四)

本小计知识概览管程是一种特殊的软件模块,有这些部分组成:共享数据结构可以理解为临界资源,一组过程其实就是一些访问临界资源的函数(方法)。管程的基本特征:进程只能通过特定的函数(方法)才能访问临界资源。并且在某一时刻,只能有一个进程访问。本小节概览死锁: 各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先 (SPF) 算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”死循环:某进程执

2023-05-30 14:08:21 720 2

原创 进程(三)

如果没有进程互斥?利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况)优点: 简单、高效缺点: 不适用于多处理机:只适用于操作系统内核进程,不适用于用户进程(因为开/关中断指今只能运行在内核态,这组指令如果能让用户随意使用会很危险进程互斥:锁解决临界区最简单的工具就是互斥锁 (mutex lock)。一个进程在进入临界区时应获得锁;在退出临界区时释放锁。

2023-05-30 14:05:14 714

原创 进程(二)

本小节知识概览闲逛进程本小节知识概览。

2023-05-08 23:28:01 500 1

原创 进程(一)

本小节知识概览在早期的计算机中,只能处理单个任务,引入多道程序之后,在内存中需要存储多个程序需要的数据,那么操作系统是如何知道各个程序的存放位置呢?因此就引出了进程、进程实体的概念。程序段、数据段、PCB三部分组成了进程实体(进程映像一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。注意:PCB是进程存在的唯一标志本小节知识概览本小节知识总览本小节知识概览什么是进程通信?顾名思义,进程通信就是指进程之间的信息交换。

2023-05-08 23:20:39 632

原创 Docker笔记(二)

一、Docker 复杂安装1.1、mysql 主从复制1.2、Redis1.2.1、Redis存储大量数据解决方案1.2.2、Redis 集群搭建1.2.3、数据读写存储1.2.4、容错切换转移1.2.5、主从扩容案例1.2.6、主从缩容案例二、Dockerfile2.1、是什么?2.2、保留字指令2.3、案例三、虚悬镜像3.1、是什么四、实战五、Docker 网络5.1、是什么?5.2、能干嘛5.3、bridge5.4、host5.5、none5.6、container5.7、自定义网络六、Docker

2023-05-08 15:59:50 1127

原创 第一章:操作系统概述

小节知识总览**操作系统(Operating System,OS)**是指控制和管理整个计算机系统的硬件和软件资源,合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件。最直观的例子:打开任务管理器,可以看到操作系统对软件、硬件的管理本小节知识总览本小节知识概览本小节知识概览预备知识:什么是指令?指令就是计算机能够识别、执行的最基本的命令而我们平常所说的用 C、Java、Js这些高级语言写的代码,计算机并不能识别。

2023-04-08 18:39:17 430

原创 203. 移除链表元素

1、这道题目中的头结点是存储数据的,并且是可以删除的。因此在处理时,要么使用虚拟节点不用额外处理头结点,要么就额外处理头结点。能够想到最直接的方式:就是遍历所有的节点,判断节点的 val 值是否相等,相等则删除,反之继续遍历。2、在判断节点的 val 值是否相等时,判断的是。如果判断的是当前节点的话,我们是无法删除的。当前节点的下一节点的 val。,请你删除链表中所有满足。给你一个链表的头节点。

2023-04-07 12:03:09 314

原创 8080端口被占用问题

【代码】8080端口被占用问题。

2023-03-12 11:59:23 115

原创 Redis管道

管道(pipeline)可以一次性发送多条命令给服务端,服务端依次处理完,通过一条响应一次性将结果返回,减少 IO 的次数,缩短往返回时间。类似于 mset、mget 命令...

2023-03-09 11:46:09 440

原创 Redis之持久化操作

持久化是指将内存中的数据同步到磁盘中,避免由于一些异常而导致redis中的数据丢失。当 redis 实例重启时,可利用之前持久化的文件进行恢复。

2023-03-09 10:23:49 631

原创 Redis类型之Geospatial

GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。: 根据中心的位置, 按照从近到远的方式返回位置元素。: 根据中心的位置, 按照从远到近的方式返回位置元素。: 以给定的经纬度为中心,找出指定半径内的元素。: 将位置元素的经度和维度也一并返回。微信摇一摇附近的妹子。

2023-03-07 21:52:54 199

原创 MyBatis常用的俩种分页方式

PS:我使用了Lombok插件,或者直接生成set、get、toString也一样。PS:由于我使用的SpringBoot,直接向容器中注入即可。(1) 创建分页对象,用来封装分页的数据。(2)配置分页拦截器。

2023-03-05 22:54:04 405

原创 设计模式之行为型模式

定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

2023-03-04 22:12:29 837

原创 设计模式之结构型模式

​ 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为。

2023-03-04 22:11:28 684

原创 设计模式之创建型模式

需求:设计一个咖啡店点餐系统。设计一个咖啡抽象类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。// 不同的咖啡名字不同,供子类重写 public abstract String getName();System . out . println("加糖");System . out . println("加奶");return "拿铁咖啡";

2023-03-04 22:08:17 805

原创 设计模式七大原则

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

2023-03-04 21:56:58 648

原创 Docker 部署微服务项目

以谷粒学苑为例,使用 Docker 部署后端服务。

2023-02-13 09:05:09 4194 4

原创 分布式高级篇4 —— 商城业务(2)

电商系统涉及到 3 流,分别时信息流,资金流,物流,而订单系统作为中枢将三者有机的集 合起来。 订单模块是电商系统的枢纽,在订单这个环节上需求获取多个模块的数据和信息,同时对这 些信息进行加工处理后流向下个环节,这一系列就构成了订单的信息流通1、用户信息用户信息包括用户账号、用户等级、用户的收货地址、收货人、收货人电话等组成,用户账 户需要绑定手机号码,但是用户绑定的手机号码不一定是收货信息上的电话。用户可以添加 多个收货信息,用户等级信息可以用来和促销系统进行匹配,获取商品折扣,同时用户等级 还可以获取积

2023-02-09 17:45:49 2136

原创 分布式高级篇3 —— RabbitMQ

RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。RabbitMQ 的三大特点该场景一般在秒杀或者团购活动中使用广泛。

2023-02-09 17:42:56 702

原创 分布式高级篇2 —— 商城业务 (1)

再点击上架时,商品信息保存在 ES 中,并且可供商城页面可供检索。因此我们必须考虑这些商品信息该如何在 ES 中存储?1)、检索的时候输入名字,是需要按照 sku 的 title 进行全文检索的2)、检索使用商品规格,规格是 spu 的公共属性,每个 spu 是一样的3)、按照分类 id 进去的都是直接列出 spu 的,还可以切换。4)、我们如果将 sku 的全量信息保存到 es 中(包括 spu 属性)就太多量字段了。5)、我们如果将 spu 以及他包含的 sku 信息保存到 es 中,也可以方便检索。但

2023-02-09 17:38:31 982

原创 分布式高级篇1 —— 全文检索

Elasticsearch 是什么?| Elastic全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的 接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。REST。

2023-02-09 17:30:58 675

原创 使用 Vagrant 对 VirtualBox 虚拟机磁盘扩容

1、在初次使用 Vagrant init 创建 VirtualBox 虚拟机时,会创建一个 Vagrantfile 文件。Vagrant 下载地址: https://www.vagrantup.com/downloads.html。先执行以下命令,安装成功后,vagrant up。2、在 Vagrantfile 文件中增加。查询,磁盘大小已经修改了,但是还没有分区。7、此时在使用 df -h 查询磁盘容量。将之前的分区删掉,重新创建一个主分区。Vagrant版本 2.3.4。6、分区完,执行以下命令。

2023-01-09 23:03:30 862

原创 分布式基础篇4 —— 基础篇完结(谷粒商城)

查询出数据库中的所有分类:导入 SQL 语句:数据库表字段含义:一级分类的parent_id 为 0,一级分类的 cat_id 为二级分类的 parent_id,二级分类的 cat_id 为三级分类的 parent_id.1、在 模块下完成分类功能2、在 实体类中,增加一个属性用于保存每个分类的子分类3、4、 接口5、 实现类6、使用 PostMan 测试7、将 注册到 Nacos,并配置网关gulimall-product 模块配置:gulimall-gateway 模块配置:注意和 adm

2023-01-07 18:27:20 911

原创 分布式基础篇3——前端开发基础知识(谷粒商城)

视频来源: 【Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目】ECMAScript 6.0(以下简称 ES6,ECMAScript 是一种由 Ecma 国际(前身为欧洲计算机制造商协会,英文名称是 European Computer Manufacturers Association)通过 ECMA-262标准化的脚本程序设计语言)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了,并且从 ECMAScript 6 开始,开始采用年号来做版本。即 ECM

2023-01-07 18:21:58 1131

原创 分布式基础篇2——分布式组件(谷粒商城)

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。GitHub 官网:网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。

2023-01-07 18:17:19 1091

原创 分布式基础篇1——环境搭建(谷粒商城)

市面上有 5 种常见的电商模式 B2B、B2C、C2B、C2C、O2O;B2B 模式B2B (Business to Business), 是指商家与商家建立的商业关系。如:阿里巴巴B2C 模式B2C (Business to Consumer), 就是我们经常看到的供应商直接把商品卖给用户,即“商对客”模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城C2B 模式C2B (Customer to Business),即消费者对企业。

2022-12-15 00:46:50 713 3

空空如也

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

TA关注的人

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