自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池

线程池池化技术:主要用于解决频繁的创建销毁操作带来的大量资源占用,顺带解决内存空间管理的问题线程池实现思路:1、需要有一个主线程处理请求2、需要有一个管理线程处理任务队列和线程池的运行3、线程池(任务队列空,线程池的线程等待,有任务时通知线程操作)4、锁和条件变量(线程同步)...

2020-03-04 10:11:10 199

转载 包装模式

包装模式(装饰者模式)作用:包装模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。角色:Component:定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent:定义一个对象,可以给这个对象添加一些职责Decorator:维持一个指向Component对象的指针,并定义一个与Compon...

2020-03-02 20:34:21 366

转载 代理模式

代理模式作用:为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。角色:subject:抽象角色。声明真实对象和代理对象的共同接口。proxy:代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。realsubject:真...

2020-03-02 19:59:25 196

转载 外观模式

外观模式作用:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。属于结构型模式。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。提高子系统的独立性和可移植性.简化了类之间的依赖关系使用场景:当你要为一个复杂子系统提供一个简单接口时客户程序与抽象类的实现部分之间存在着很大的依赖性当你需要构建一个层次结构的子系统时代码示例#inc...

2020-03-02 19:43:52 156

转载 原型模式

本文章转载:https://blog.csdn.net/u014337397/article/details/80387482原型模式作用:用原型实例来指定出创建对象的总类,并且通过拷贝这些原型来创建新的对象。使用场景:当一个系统应该独立于它的产品创建、构成和表示的时候当要实例化的类是在运行时刻指定的时候,如通过动态加载为了避免创建一个与产品类层次平行的工厂类层次时当一个类的实例只...

2020-03-02 19:31:54 146

原创 适配器模式

适配器模式定义:将某个类的接口转换为接口客户所需的类型。换句话说,适配器模式解决的问题是,使得原本由于接口不兼容而不能一起工作、不能统一管理的那些类可以在一起工作、可以进行统一管理。做法是将类自己的接口包裹在一个已存在的类中。举例:这里有厨师接口 ICooker、程序员接口 IProgrammer,分别用于定义他们各自工种的具体工作。然后又定义了全聚德的厨师 QjdCooker、京东的程序员J...

2020-03-02 19:25:10 222

原创 设计模式

创建型模式:(new的解耦)工厂模式单例模式建造者模式原型模式结构型模式:(对象之间的解耦)适配器模式外观模式代理模式包装模式桥接模式组合模式行为型模式:(将动作封装成对象,从类中解耦)模板方法模式策略模式观察者模式责任链模式中介者模式状态模式...

2020-03-02 09:51:57 107

原创 建造者模式

建造者模式建造者模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构造细节的情况下,可以更精细的控制对象的构造流程作用:为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。使用场景:需要生成的对象具有复杂的内部结构要生成的对象内部属性本身相互依赖优点:建造者独立,易扩展便于控制细节风险缺点:产品必须有共同点,范围有限制如内部变化复杂,会有...

2020-03-02 09:44:22 156

原创 单例模式

单例模式作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象应用场景:1.资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置。2.控制资源的情况下,方便资源之间的互相通信。如线程池等。3.设备管理器,系统中可能有多个设备,但是只有一个设备管理器,用于管理设备驱动;基础要点:全局只有一个实例:static 特性,...

2020-03-02 09:29:18 151

原创 工厂模式

工厂模式工厂模式:工厂设计模式,顾名思义,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所以说...

2020-03-02 09:14:16 355

原创 C/C++面试总结

1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?回答:virtual修饰符会被隐形继承的。private 也被集成,只是派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里...

2020-02-20 20:17:34 1319

原创 类型推导

类型推导auto 类型推导运算符(根据赋值的值的类型来决定变量的类型)类型推导的规则为什么要掌握类型推导规则:推导原则帮助我们使用更好类型推导的作用:使代码更加灵活,通用性好使用场景:模板autodecltypedecltype(auto)函数模板的推导规则万能引用(限定函数模板)在函数模板中右值引用作为万能引用(未定义引用),即可以推导任意类型,既可以接...

2020-02-13 19:19:23 508

原创 网络编程

网络编程概念TCP:用来检测网络传输中差错的传输控制协议,可靠传输协议IP:专门负责对不同网络进行互联的互联网协议IP,不可靠传输协议网络采用分层的思想:每一层实现不同的功能,对上层的数据做透明传输每一层向上层提供服务,同时使用下层提供的服务两种体系结构:OSITCP/IP层级应用层应用层高层表示层会话层传输层传输层底层(...

2019-12-25 18:15:00 372

原创 线程

线程pthread_create() pthread_exit()创建了线程之后,地址空间不变化,但是内核态增加了一个pcb,原进程变为主进程,创建出的为子进程。两线程共享地址空间,有各自独立的pcb,子线程的pcb是拷贝的主线程的用户区:.text //代码段.bss //未初始化的全局变量.data //初始化的全局变量堆栈动态库加载区环境变量命令行参数...

2019-12-24 21:46:38 129

原创 Linux进程相关

显示进程(pid,user,all)ps aux显示进程(pid,ppid,进程组,会话)ps ajx查看信号kill -l九号信号的作用kill -9(SIGKILL) pid每个进程地址空间都是从0开始(虚拟地址空间)创建进程函数fork()*问题:fork之后,进程间的数据共享是怎么样的答:fork之后进程之间的数据完全一样但是完全独立,互不影响*问题:数据在物理内存...

2019-12-21 20:46:31 139

原创 vscode配置git以及上传到远端(github)

前提条件 已经配置好vscode编译环境(无论什么语言)注册有github(其实没有也无所谓,可以只搞本地的)下载git百度git,点击官网,进入下载安装git配置环境变量进入vscode工作区在终端输入git init如果原来有一些代码文件可以先提交一下git commit -m "日期(或者你认为有意义的名字)"如果有远端(指github),也可...

2019-12-19 21:23:24 3115 1

原创 git使用错误记录

将暂存文件的提交到本地仓库G:\C\Test1>git commit -m "first commit"On branch masterInitial commitUntracked files: .vscode/ DataStructure/ file/ test.code-workspace te...

2019-12-10 10:56:58 234

原创 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb8 in position 2: invalid start byte

vscode下调试python文件,报错SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xb8 in position 2: invalid start byte上网查询了一番,发现是编码格式错误,python默认的是utf-8的编码,而我的是gbk的编码,于是在文件开头输入如下代码即可解决#-*-coding:G...

2019-11-24 10:33:34 2748 1

原创 vscode配置C/C++环境

首先,去微软官方下载vscode然后需要下载C/C++的编译器即mingw下载网址:http://mingw.org/点击如下图位置我加载了一些项目,仅供参考加载完之后需要将bin目录添加到环境变量里面去步骤如下:找到MingW的bin目录打开控制面板->系统和安全->系统点击更改设置->高级->环境变量->找到path->点击编辑...

2019-11-23 20:57:26 455

原创 链表

链表格式链表最基本的格式如下:struct Node{ int data; //数据区 struct Node *next; //地址区};链表空间分为数据区和地址区,数据区用来存储数据,地址区存储的是下一块数据的地址;链表的基本操作:初始化/*函数功能:初始化链表表头函数参数:表头地址函数返回值:SUCCESS FA...

2019-11-23 19:16:30 178

原创 vscode终端中文乱码问题

vscode的终端使用的是cmd的编码打开cmd使用chcp查看当前编码使用chcp 65001修改编码为utf-8成功解决问题。

2019-11-17 21:42:27 594

转载 getchar函数

//函数原型:int getchar(void);//从键盘缓冲区中读取1个字符(任意字符包括’\n’),并返回,如果出错则返回EOF//总结://程序开始运行时,操作系统为程序的键盘输入建立缓冲区,缓冲区存储从程序开始到结束的键盘输入//按下回车键,键盘输入被送至缓冲区内,包括回车符//输入字母时,光标不闪烁,需要按回车让光标变为闪烁,这个让光标回到闪烁状态的回车并不会被存储到缓冲区中...

2019-11-12 19:49:41 522

原创 C语言中if和while的区别

ifif通常只执行一次判断,判断后直接跳出whilewhile执行完成内部程序后会继续判断

2019-11-12 19:17:34 4264

原创 undefined reference to `sqrt`

sqrt函数编译出错在写C的时候用到了sqrt,但是编译不通过,头文件页包含了math.h最后把编译指令改为了gcc -o xxx xxx.c -lm编译通过

2019-11-12 18:20:14 542

原创 C语言参数传递——值传递与地址传递

C语言参数传递——值传递与地址传递值传递int main(){ int a=3; int b=4; printf("初始值a=%d,b=%d\n",a,b); exchange(a,b); printf("运行后a=%d,b=%d",a,b); return 0;}void exchange(int a ,int b){ int te...

2019-11-11 21:35:18 462

原创 编程中关于编译的原理及指令

编译的步骤编译四步骤:预处理 编译 汇编 链接预处理处理所有以#号开头的文件头文件(展开) 宏定义(替换) 条件编译(ifdefine)gcc -E hello.c -o hello.i编译把C转换成汇编,且进行语法检查gcc -S hello.i -o hello.s汇编把汇编代码转换成二进制gcc -c hello.s -o hello.o链接链接代码用到...

2019-10-18 10:18:37 235

原创 LINUX软件源更新(apt_get不好用的问题)

LINUX软件源更新问题初学LINUX的小伙伴通常都会遇到一个问题,那就是使用apt-get下载软件时出现could not to get lock或者unable to locate package,这个问题困扰了我很长时间,今天终于把它解决了。(原因是因为软件源没有及时更新或者使用的不是国内的软件源)首先需要你的linux系统能够连上网,然后要更新你的软件源。软件源(sources.li...

2019-10-15 19:04:03 966

原创 LINUX命令学习手册

LINUX命令学习手册文件处理命令filefile:通过文件内容判断文件类型(目录、shell脚本、英文文本、二进制可执行文件(elf)、C语言源文件、文本文件、DOS可执行文件),使用权限是所有用户格式:file [指令参数] 文件名指令参数作用-v在标准输出后显示版本信息,并推出-z探测压缩过的文件类型-L允许符合连接-f name从文件...

2019-10-15 18:26:14 167

空空如也

空空如也

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

TA关注的人

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