自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git的指令

git的使用本地操作常用指令版本提交版本回退忽略列表分支指令常用分支远程仓库SSH公钥配置远程仓库操作从远程仓库中克隆从远程仓库中抓取和拉取本地操作常用指令版本提交git init //创建仓库touch xxx.xx //创建文件vi xxx.xx //修改文件git status //查看状态git add . //所有文件加入暂存区gtt add xxx.xx //文件加入暂存区git commit -m "注释" //提交至本地仓库git log [optio

2022-03-02 11:36:42 454

原创 设计模式_24 备忘录模式

设计模式_24 备忘录模式24 备忘录模式24.1 概念24.2 结构24.3 实现24.3.1 白箱备忘录模式24.3.1.1 UML图24.3.1.2 代码24.3.2 黑箱备忘录模式24.3.2.1 UML图24.3.2.2 代码24.4 优缺点24.4.1 优点24.4.2 缺点24.5 使用场景return 设计模式概述;24 备忘录模式24.1 概念存档,撤销。在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时,能将该对象恢复到原先保存的状态。2

2022-02-26 21:05:20 245

原创 设计模式_23 访问者模式

设计模式_23 访问者模式23 访问者模式23.1 概念23.2 结构23.3 实现23.3.1 UML图23.3.2 代码23.4 优缺点23.4.1 优点23.4.2 缺点23.5 使用场景23.6 分派23.6.1 定义23.6.2 双分派return 设计模式概述;23 访问者模式23.1 概念封装了一些作用于某种数据结构中的各元素的操作,可以在不改变这个数据结构的前提下定义作用于这些元素的新操作。23.2 结构抽象访问者角色:定义了对每一个元素访问的行为,它的参数就是可以访问的元素,它的

2022-02-25 18:38:44 369

原创 设计模式_22 迭代器模式

设计模式_22 迭代器模式22 迭代器模式22.1 概念22.2 结构22.3 实现22.3.1 UML图22.3.2 代码22.4 优缺点22.4.1 优点22.4.2 缺点22.5 使用场景return 设计模式概述;22 迭代器模式22.1 概念提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象内部表示。22.2 结构抽象聚合角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。具体聚合角色:实现抽象聚合类,返回一个具体迭代器的实例。抽象迭代器角色:定义访问和遍历聚合元

2022-02-25 12:38:29 340

原创 设计模式_21 中介者模式

设计模式_21 中介者模式21 中介者模式21.1 概念21.2 结构21.3 实现21.3.1 UML图21.3.2 代码21.4 优缺点21.4.1 优点21.4.2 缺点21.5 使用场景return 设计模式概述;21 中介者模式21.1 概念定义一个中介角色来封装一系列对象之间的交互,使原有对象之间耦合松散,且可独立的改变他们之间的交互。多个类之间互相关联,呈现复杂网状结构,过度耦合。引入中介者模式,将类之间关系变为星型结构。任何一个类的变动只会影响类本身和中介者。21.2 结构抽象中

2022-02-24 22:52:04 290

原创 设计模式_20 观察者模式(含 UML图 和 C++代码)

设计模式_20 观察者模式20 观察者模式20 .1 概念20 .2 结构20 .3 实现20 .3.1 UML图20 .3.2 代码20 .4 优缺点20 .4.1 优点20 .4.2 缺点20 .5 使用场景return 设计模式概述;20 观察者模式20 .1 概念又被称为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者同时监听某一主题对象。该主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。20 .2 结构抽象主题(抽象被观察者)角色:把所有观察者对象保存在一

2022-02-23 22:07:19 1649

原创 设计模式_19 状态模式(含 UML图 和 C++代码)

设计模式_19 状态模式19 状态模式19.1 概念19.2 结构19.3 实现19.3.1 UML图19.3.2 代码19.3.3 测试结果19.4 优缺点19.4.1 优点19.4.2 缺点19.5 使用场景return 设计模式概述;19 状态模式加油,你可以的。(PS:状态模式给我整吐了,阿西吧。)19.1 概念对有状态的角色,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部发生改变时改变其行为。例如进程管理中就绪态、阻塞态、运行态之间的切换,阻塞态的进程不能直接切换到运行

2022-02-23 19:03:33 737

原创 设计模式_18 责任链模式(含 UML图 和 C++代码)

设计模式_18 责任链模式17 命令模式16.1 概念16.2 结构16.3 实现16.3.1 UML图16.3.2 代码16.4 优缺点16.4.1 优点16.4.2 缺点return 设计模式概述;17 命令模式16.1 概念为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一对象的引用而连成一条链。有请求发生时,可将请求沿着这条链传递,直到有对象处理为止。16.2 结构抽象处理者角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。具体处理者角色:

2022-02-23 14:09:30 613

原创 设计模式_17 命令模式(含 UML图 和 C++代码)

设计模式_17 命令模式17 命令模式16.1 概念16.2 结构16.3 实现16.3.1 UML图16.3.2 代码16.4 优缺点16.4.1 优点16.4.2 缺点16.5 使用场景return 设计模式概述;17 命令模式16.1 概念将一个请求封装为一个对象,使发出请求的责任与执行请求的责任分割开。这样两者之间通过命令对象进行沟通,方便将命令对象进行存储、传递、调用、增加和管理。16.2 结构抽象命令角色:定义命令的接口,声明执行的方法。具体命令角色:具体的命令,实现命令接口。通常会

2022-02-22 21:24:37 418

原创 设计模式_16 策略模式(含 UML图 和 C++代码)

设计模式_16 策略模式16 策略模式16.1 概念16.2 结构16.3 实现16.3.1 UML图16.3.2 代码16.4 优缺点16.4.1 优点16.4.2 缺点16.5 使用场景16 策略模式16.1 概念该模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同对象对这些算法进行管理。16.2 结构抽象策略类:通常由一个接口或抽象类来实现。此角色

2022-02-22 20:07:28 1006

原创 设计模式_15 模板方法模式(含 UML图 和 C++代码)

设计模式_15 模板方法模式15 模板方法模式15.1 概念15.2 结构15.3 实现15.3.1 UML图15.3.2 代码15.4 优缺点15.4.1 优点15.4.2 缺点15.5 使用场景return 设计模式概述;15 模板方法模式15.1 概念定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下重定义该算法某些特定实现步骤。15.2 结构抽象类:负责给出一个算法的轮廓和骨架。由一个模板和若干个方法组成。–模板方法:定义了算法的骨架,按某种顺

2022-02-22 11:02:54 480

原创 设计模式_14 享元模式(含 UML图 和 C++代码)

设计模式_14 享元模式14 组合模式14.1 概念14.2 结构14.2.1 状态14.2.2 角色14.3 实现14.3.1 UML图14.3.2 代码14.4 优缺点14.4.1 优点14.4.2 缺点14.5 使用场景retur 设计模式概述;14 组合模式14.1 概念利用共享技术来有效支持大量细粒度对象的复用。通过共享已经存在的对象来大幅度减少需要创建的对象数量,避免大量相似对象的开销,提高系统资源利用率。14.2 结构14.2.1 状态内部状态:不会随着环境改变而改变的可共享部分。

2022-02-22 10:08:40 216

原创 设计模式_13 组合模式(含 UML图 和 C++代码)

设计模式_13 组合模式13 组合模式13.1 概念13.2 结构13.3 实现13.3.1 UML图13.3.2 代码13.3.3 测试结果13.4 分类13.4.1 透明组合模式13.4.2 安全组合模式13.5 优点13.6 使用场景retur 设计模式概述;13 组合模式13.1 概念用于把一组相似的对象当做一个单一的对象。组合模式依据树形结构来组合对象,用于表示部分以及整体的层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。13.2 结构抽象根节点:定义系统各层次对象的共

2022-02-21 22:04:01 525

原创 设计模式_12 外观模式(含 UML图 和 C++代码)

设计模式_11 外观模式12 外观模式12.1 概念12.2 结构12.3 实现12.3.1 UML图12.3.2 代码12.4 优缺点12.4.1 优点12.4.2 缺点12.5 使用场景retur 设计模式概述;12 外观模式12.1 概念通过为多个复杂子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不必关注内部子系统的具体实现细节。降低了程序的复杂度,提高了程序的可维护性。迪米特法则的典型应用。和代理模式的区别:代理模式是通过继承方式完成同

2022-02-21 12:10:25 186

原创 设计模式_11 桥接模式(含 UML图 和 C++代码)

设计模式_10 桥接模式10 桥接模式10.1 概念10.2 结构10.3 实现10.3.1 UML图10.3.2 代码10.4 优点10.5 使用场景return 设计模式概述;10 桥接模式10.1 概念将抽象与实现分离,使他们可以独立变化。用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。10.2 结构抽象化角色:定义抽象类,并包含一个对实现化对象的引用。扩展抽象化角色:抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。实现化角色:

2022-02-21 11:10:08 450

原创 基础算法_排序算法总结

基础算法_排序算法总结排序算法稳定性概念种类1 选择排序原理性能2 冒泡排序原理性能3 插入排序原理性能4 计数排序原理性能适用场景5 基数排序原理性能6 快速排序原理性能内省排序7 归并排序原理性能8 堆排序原理性能9 桶排序原理性能10 希尔排序原理性能排序算法稳定性概念排序前后大小相同元素的序列顺序是否改变,不发生改变则为稳定。种类1 选择排序原理每次找出第 i 小的元素,将该元素与第 i 位元素交换。性能稳定性:不稳定。交换元素时会打破稳定性。时间复杂度: O(n²)。空间复杂

2022-02-20 21:41:36 314

原创 设计模式_10 装饰者模式(含 UML图 和 C++代码)

设计模式_10 装饰者模式10 装饰者模式10.1 概述10.2 功能10.3 实现10.3.1 UML图10.3.2 代码10.4 优点10.5 使用场景return 设计模式概述;10 装饰者模式10.1 概述在不改变现有对象结构的前提下,动态的给对象增加一些额外功能的模式。10.2 功能抽象构件角色:定义一个抽象接口以规范准备接收附加责任的对象。具体构件角色:实现抽象构件,通过装饰角色为其添加一些职责。抽象装饰角色:继承或实现抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功

2022-02-19 18:32:40 723

原创 设计模式_09 适配器模式(含 UML图 和 C++代码)

设计模式_09 适配器模式9 适配器模式9.1 概述9.2 结构9.3 实现9.3.1 类适配器模式实现9.3.1.1 UML图9.3.1.2 代码9.3.2 对象适配器模式实现9.3.2.1 UML图9.3.2.2 代码9.4 使用场景return 设计模式概述;9 适配器模式9.1 概述将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容不能一起工作的类可以协同工作。适配器模式分为类适配器模式和对象适配器模式。9.2 结构目标接口:当前系统业务所期待的接口,可以是抽象类或接口。

2022-02-19 14:36:29 606

原创 设计模式_08 代理模式(含 UML图 和 C++代码)

设计模式_08 代理模式8 代理模式8.1 概述8.2 结构8.3 实现8.3.1 UML图8.3.2 代码8.4 优缺点8.4.1 优点8.4.2 缺点8.5 使用场景8.5.1 远程代理(RPC)8.5.2 防火墙代理(VPN)8.5.3 保护代理return 设计模式概述;8 代理模式8.1 概述由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时访问对象不适合或不能直接引用目标对象,代理对象作为中介。8.2 结构抽象主题类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。

2022-02-19 11:43:51 389

原创 设计模式_07 建造者模式(含 UML图 和 C++代码)

设计模式_07 建造者模式7. 建造者模式7.1 概述7.2 结构7.3 实现7.3.1 UML图7.3.2 代码7. 建造者模式7.1 概述将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的对象。7.2 结构抽象建造者(Builder):这个接口规定要实现复杂对象的那些部分的创建,并不涉及具体的对象部件的创建。具体建造者(ConcreteBuilder):实现Builder接口,完成复杂对象的各个部分的具体创建方法。在构造过程完成后,提供产品的实例。产品类:要创建的复杂对象。

2022-02-18 18:20:28 665

原创 设计模式_06 原型模式(含 UML图 和 C++代码)

设计模式_06 原型模式原型模式概述结构实现分类UML图代码设计模式概述原型模式概述用一个已经创建的实例为原型,通过复制该对象来创建一个和原型对象相同的新对象。结构抽象原型类:规定了具体原型对象必须实现的 clone() 方法。具体原型类:实现抽象原型的 clone() 方法,它是可被复制的对象。访问类:使用具体原型类中的 clone() 方法来复制新对象。实现分类浅克隆:创建一个新的对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆

2022-02-18 10:38:56 267

原创 设计模式_05 工厂模式(含 UML图 和 C++代码)

设计模式_05 工厂模式工厂模式简单工厂模式结构实现UML图代码工厂模式抽象模式工厂模式简单工厂模式结构抽象产品:定义了产品的规范,描述了产品的主要特性和性能。具体产品:实现或继承抽象产品的子类。具体工厂:提供了创建产品的方法,调用者通过该方法来获取产品。实现UML图代码class coffee {public: virtual string getName() = 0; void addMilk() { cout << "加奶" << endl;

2022-02-18 09:37:55 1318

原创 设计模式_04单例模式(含 UML图 和 C++代码)

设计模式_04单例模式单例模式单例模式分类饿汉式懒汉式双重检查锁单例模式单例模式属于创建型模式。涉及到一个单一的类,该类负责创建自己的对象。同时确保只有单一对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式分类饿汉式类加载就会导致该单例对象被创建。通过静态成员变量的方式创建。代码:// 饿汉式class singleton_hungry {private: singleton_hungry() {} static singleton_h

2022-02-13 20:34:08 495

原创 设计模式_03 六大设计原则(含 C++代码)

设计模式_03 六大设计原则设计模式_03 六大设计原则开闭原则里氏代换原则依赖倒转原则接口隔离原则迪米特法则合成复用原则设计模式_03 六大设计原则开闭原则对扩展开放,对修改关闭。通过接口和抽象类来实现。代码实现:class Abstract_father {public: virtual void func() = 0;};class son1 : Abstract_father {public: void func() { cout << "son1" &lt

2022-02-13 16:05:20 669

原创 设计模式_02 UML类图

设计模式_02 UML类图UML类图表示方式类与类之间的关系关联关系聚合关系组合关系依赖关系继承关系实现关系UML类图表示方式类图包含:类,接口,成员变量,成员函数+:表示pubic-:表示private#:表示protected例如:[- name string; + addMember() void;]类与类之间的关系关联关系关联关系是对象之间的一种引用关系单向关联带箭头的实线表示双向关联不带箭头的直线表示自关联指向自己的箭头聚合关系成员对象是整体的一部分,但是可以

2022-02-12 21:52:30 545

原创 C++ _01基础知识

C++ _01基础知识程序编译过程C++内存分区static使用详解智能指针程序编译过程编译预处理:处理以 # 开头的指令;编译、优化:将源码 .cpp 文件翻译成 .s 汇编代码;汇编:将汇编代码 .s 翻译成机器指令 .o 文件;链接:汇编程序生成的目标文件,即 .o 文件,并不会立即执行,因为可能会出现.cpp 文件中的函数引用了另一个 .cpp 文件中定义的符号或者调用了某个库文件中的函数。链接的目的就是将这些文件对应的目标文件连接成一个整体,从而生成可执行的程序 .exe 文件。链接分

2022-02-11 18:11:08 602

原创 设计模式_01 设计模式概述

设计模式_01 设计模式概述设计模式设计模式的六大原则开闭原则(Open Close Principle)里氏代换原则(Liskov Substitution Principle)依赖倒转原则(Dependence Inversion Principle)接口隔离原则(Interface Segregation Principle)迪米特法则(Demeter Principle)合成复用原则(Composite Reuse Principle)设计模式类型创建型模式工厂模式(Factory Pattern)

2022-02-10 22:06:29 463

原创 计算机网络_04 网络层

计算机网络_04 网络层网络层IP协议地址分配协议IPv4DHCP(动态主机配置协议)CIDR(无类别域间路由)NAT(网络地址转换协议)IPv6路由器路由器分组转发流程最长匹配原则路由表的结构ICMP协议ICMP的应用PingTraceRouteARP协议ARP协议解析流程网络层IP协议IP 协议(Internet Protocol)又称互联网协议,是支持网间互联的数据包协议。IP 协议提供一种无连接/不可靠、尽力而为的数据包传输服务,其与TCP协议(传输控制协议)一起构成了TCP/IP 协议族的核

2022-02-10 21:25:48 1133

原创 计算机网络_03 传输层

计算机网络_03 传输层传输层三次握手流程四次挥手流程CLOSE-WAIT 和 TIME-WAITTCP 和 UDPTCP报文格式TCP 和 UDP 区别TCP可靠性保证流量控制(滑动窗口)拥塞控制传输层三次握手流程三次握手是TCP连接建立的过程。在握手之前,主动打开连接的客户端结束 CLOSE 阶段,被动打开的服务器也结束 CLOSE 阶段,并进入 LISTEN 阶段。随后进入三次握手阶段:1.首先客户端向服务器发送一个 SYN 包,并等待服务器确认,其中:标志位为 SYN,表示请求建立连

2022-02-10 18:26:40 1008

原创 计算机网络_02 应用层

计算机网络_02 应用层应用层HTTP协议HTTP报文格式HTTP请求头部HTTP请求方式GET和POST区别HTTP状态码HTTP长连接和短连接HTTP版本HTTP与HTTPSHTTP与HTTPS区别HTTP/1.0和HTTP/1.1区别HTTP/1.X 和 HTTP/2.0 的区别HTTP/3HTTP/2 存在的问题QUIC 协议HTTP/3HTTP如何维持用户状态DNS域名系统DNS域名空间结构DNS 的解析过程其他协议FTPSMTPDHCPSNMP网页解析过程应用层HTTP协议HTTP报文格式

2022-02-09 11:45:06 1118

原创 计算机网络_01 协议层次

计算机网络_01 协议层次协议层次分类OSI七层模型TCP/IP五层模型TCP/IP 四层模型协议层次分类OSI七层模型应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP五层模型应用层、传输层、网络层、数据链路层、物理层应用层为应用程序提供交互服务。互联网中的应用层协议:HTTP、FTP、DNS、SMTP 等。传输层负责向两台主机进程之间的通信提供数据传输服务。传输层主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。其中面向连接的 TCP 协议保证了数据的传

2022-02-08 22:29:47 263

原创 OS_03 内存管理

OS_03 内存管理内存管理内存管理机制分段分页异同快表(TLB)多级页表虚拟地址虚拟内存虚拟内存的实现页面置换算法内存管理内存分配、内存回收、地址转换、内存保护内存管理机制分块管理:把内存分为大小相等且固定的几个块,每个进程占用一个块。分页管理:把内存分为若干相同大小的页面,通过页表对应页的逻辑地址和物理地址。分段管理:把内存分为大小不等的有逻辑意义的段,比如代码段、局部变量段,通过段表对应段的逻辑地址和物理地址。段页式管理:先把主存分为若干个段,再把段分为若干个页,先通过段表找对应的页表,

2022-02-08 22:05:36 67

原创 OS_02 进程管理

OS_02 进程管理进程管理线程、进程、协程PCB进程和线程的创建和撤销进程的五种状态进程调度算法批处理系统交互式系统实时系统进程同步临界区同步与互斥信号量管程进程间的通信方式管道消息队列共享内存信号量套接字死锁死锁发生条件如何避免死锁发生死锁发生如何处理进程管理线程、进程、协程进程是资源分配的最基本单位。windows的.exe就是进程,运行一个程序会创建一个或多个进程。线程是程序执行的最基本单位。每个进程有且仅有一个主线程,线程可以调用进程的资源。线程是独立调度的基本单位。线程可直接通过读写同一

2022-02-08 21:30:52 333

原创 OS_01 操作系统概述

OS_01 操作系统概述操作系统概述用户态和内核态系统调用如何从用户态切换到内核态系统调用异常外围设备的中断并行与并发阻塞与非阻塞同步与异步操作系统概述用户态和内核态用户态(user mode) : 用户态运行的进程可以直接读取用户程序的数据。系统态(kernel mode):可以简单的理解系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。系统调用我们运行的程序基本都是运行在用户态,如果我们调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了!也就是说在我们运行的用户程序

2022-02-08 13:22:40 774

空空如也

空空如也

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

TA关注的人

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