- 博客(93)
- 资源 (1)
- 收藏
- 关注
原创 Docker 容器监控 CAdvisor + InfluxDB + Grafana
CAdvisor 是一个容器资源监控工具InfluxDB 是一个存储数据工具Grafana 是图表展示数据工具。
2023-03-04 14:09:04
257
原创 简述BASE理论
一、CAP理论Consistency(一致性)即更新操作成功后,所有节点在同一时间的数据完全一致。对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。对于服务端来说,一致性指的是更新过的数据如何复制分布到整个系统,以保证数据最终一致。Availability(可用性)即服务一直可用,而且是正常响应时间。系统能够很好地为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。Partition Tolerance(分区容错性)即分布式系统在遇到某个节点或者网络分区故障的时候
2021-06-08 00:17:00
7555
原创 二叉树的基本使用实现
1. 树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树2. 二叉树的子节点分为左节点和右节点3. 如果该二叉树的所有叶子节点都在最后一层,并且结点总数$s=2^n -1$,n 为层数,则我们称为满二叉树4. 如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,我们称为完全二叉树
2021-04-20 16:10:41
397
原创 SPI机制简介
SPI是Service Provider Interface 的简称,即服务提供者接口的意思。SPI说白了就是一种扩展机制,我们在相应配置文件中定义好某个接口的实现类,然后再根据这个接口去这个配置文件中加载这个实例类并实例化。有了SPI机制,那么就为一些框架的灵活扩展提供了可能,而不必将框架的一些实现类写死在代码里面。
2021-04-08 16:05:14
5144
原创 哈希表结构介绍与实现
- 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。- 哈希表通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
2021-03-30 17:02:50
290
4
原创 时间复杂度相关概念
一般情况下,算法中的基本操作语句的重复执行次数是问题规模 n 的某个函数,用T(n)T(n)表示;若有某个辅助函数f(n)f(n),使得当n趋近于无穷大时,T(n) / f(n)T(n)/f(n) 的极限值为不等于零的常数,则称 f(n)f(n) 是 T(n)T(n) 的同数量级函数,记作 T(n) = O(f(n))T(n)=O(f(n)),称 O(f(n))O(f(n)) 为时间复杂度。T(n)T(n) 不同,但时间复杂度可能相同。
2021-03-26 12:48:07
402
2
原创 递归算法相关介绍与实现
1. 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。2. 递归用于解决什么样的问题(1)各种数学问题;如:八皇后问题 , 汉诺塔、阶乘问题、迷宫问题等(2)各种算法中也会使用到递归;比如快排、归并排序、二分查找、分治算法等(3)用栈解决的问题;
2021-03-25 18:49:36
615
原创 栈相关介绍与实现
1. 栈是一个先入后出(FILO-First In Last Out)的有序列表。2. 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,最后放入的元素最先删除,最先放入的元素最后删除。3. 应用场景(1)表达式的转换(中缀表达式转后缀表达式)与求值(2)二叉树的遍历(3)图的深度优先搜索法
2021-03-24 16:34:37
235
原创 约瑟夫问题(单向循环链表)
有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称"丢手绢问题"。
2021-03-18 19:40:12
823
2
原创 稀疏矩阵的处理
一、基本介绍在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵;通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。该比值称为这个矩阵的稠密度二、相关方法/** * 打印矩阵、压缩矩阵、还原矩阵 * 压缩以及还原矩阵之前会判断该矩阵是否符合规定 */public class ArrayUtil { // 行数 private stat
2021-03-17 15:11:19
1541
1
原创 最小化安装Linux系统后出现的问题
一、使用的系统是CentOS系统,刚搭建好的Cent 最小安装模式是没有ifconfig命令的。[root@bogon ~]# ifconfig-bash: ifconfig: 未找到命令(1)修改网络配置文件[root@bogon network-scripts]# cd /etc/sysconfig/network-scripts/[root@bogon network-scripts]# lsifcfg-ens33[root@bogon network-scripts]# vi ifc
2021-03-16 17:21:02
417
原创 职责链模式介绍
1. 职责链模式(Chain of Responsibility Pattern)属于行为型模式,又叫责任链模式,这种模式对请求的发送者和接收者进行解耦。2. 职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
2021-03-15 16:18:31
297
原创 策略模式介绍
1. 策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的应用方。2. 策略模式体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类;第三、多用组合/聚合,少用继承。
2021-03-15 15:28:46
277
原创 状态模式介绍
状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。
2021-03-15 14:38:48
319
原创 解释器模式介绍
1. 在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器。2. 解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)。
2021-03-11 16:23:58
214
原创 字符串的数值计算
简单实用import org.springframework.expression.Expression;import org.springframework.expression.spel.standard.SpelExpressionParser;/** * 字符串的数值计算 */public class Interpreter { public static void main(String[] args) { SpelExpressionParser pars
2021-03-11 16:02:23
426
原创 备忘录模式介绍
备忘录模式(Memento Pattern)属于行为型模式,是指在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
2021-03-11 14:25:49
679
原创 中介者模式介绍
中介者模式(Mediator Pattern)属于行为型模式,用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2021-03-11 11:48:07
197
原创 观察者模式介绍
观察者模式:对象之间多对一的一种设计方案,一的一方是被依赖的对象称为Subject,多的一方是依赖的对象称为Observer,Subject通知Observer变化。比如气象局是Subject,为一的一方,第三方网站是Observer,为多的一方。
2021-03-11 10:49:57
256
原创 迭代器模式介绍
1. 迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式2. 如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。3. 迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。
2021-03-11 09:50:43
234
原创 访问者模式介绍
1. 访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。2. 主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题。3. 访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口。
2021-03-10 19:11:16
986
原创 命令模式介绍
通俗易懂的理解:将军发布命令,士兵去执行。其中有几个角色将军(命令发布者)、士兵(命令的具体执行者)、命令(连接将军和士兵)。Invoker是调用者(将军),Receiver是被调用者(士兵),Command实现类是具体命令,实现了Command接口,持有接收对象。
2021-03-10 11:11:59
390
原创 模板方法模式介绍
1. 模板方法模式(Template Method Pattern)属于行为型模式,在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。2. 简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中实现,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。3. 钩子方法:在模板方法模式的父类中,定义一个方法,它默认不做任何事,子类可以视情况要不要覆盖它,该方法称为“钩子”。
2021-03-10 09:36:18
321
原创 代理模式介绍
1. 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2. 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。3. 代理模式有不同的形式, 主要有三种 静态代理、动态代理和Cglib代理 (不需要实现接口, 属于动态代理的范畴) 。
2021-03-09 19:38:40
278
2
原创 享元模式介绍
1. 享元模式(Flyweight Pattern) 也叫蝇量模式:运用共享技术有效地支持大量细粒度的对象。2. 享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率,常用于系统底层开发,解决系统的性能问题。
2021-03-09 14:43:34
525
原创 外观模式介绍
1. 外观模式(Facade),也叫“过程模式,外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2. 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。
2021-03-09 12:06:06
436
原创 组合模式介绍
1. 组合模式(Composite Pattern),又叫部分整体模式,属于结构型模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。2. 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象。
2021-03-09 10:40:48
889
原创 装饰者模式介绍
1. 装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性。2. 装饰者模式就像打包一个快递。主体(Component):比如:陶瓷、食物包装(Decorator):比如:报纸、泡沫
2021-03-08 20:24:04
320
原创 桥接模式介绍
1. 桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变,是一种结构型设计模式。2. 桥接模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。3. 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
2021-03-08 10:19:36
1432
原创 适配器模式介绍
1. 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本接口不匹配不能一起工作的两个类可以协同工作。2. 适配器模式属于结构模式,主要分为三类,类适配器模式、对象适配器模式、接口适配器模式。
2021-03-07 10:58:31
357
1
原创 设计模式类型
设计模式类型一、创建型模式二、结构型模式三、行为型模式一、创建型模式单例模式抽象工厂模式原型模式建造者模式工厂模式。二、结构型模式适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式三、行为型模式模版方法模式命令模式访问者模式迭代器模式观察者模式中介者模式备忘录模式解释器模式状态模式策略模式职责链模式...
2021-03-07 00:02:16
282
原创 建造者模式介绍
1. 建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。2. 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道内部的具体构建细节。
2021-03-06 23:42:28
185
1
原创 原型模式介绍
1. 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象, 无需知道如何创建的细节。2. 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。3. 原型模式工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
2021-03-06 21:55:15
337
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人