自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图片服务器项目----My own photo world

1 什么是图床?简单来说,图床就是在云端的一块网络空间,我们可以将照片2 为什么需要图床对于一些内容输出者、文案创作者来说,他们的工作就是内容创作,俗称码字。同时呢,在码字的时候经常需要配图,就是在文字中插入图片,...

2019-09-03 17:34:12 314

原创 C/C++中 static关键字总结

1 在c语言中2 在c++中

2019-08-28 10:09:23 163

原创 顺序表和链表的区别

1 什么是顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。2 顺序表的应用场景需要随机访问时插入、删除操作不频繁时3 什么是链表链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的4 链表的应用场景插入、删除操作频繁时使用链表5 顺序表和链表的区别...

2019-08-27 15:00:06 493

原创 设计模式

1 什么 是设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。--------编程的套路总结2 使用设计模式目的提高代码的复用率让代码更加让人便于理解—可读性保证代码的可靠性3 单例模式一个类只能创建一个对象,也就是说,一个类只实例化一个对象出来,保证对象的唯一性,并提供一个访问它的全局访问指针,这个实例化对象,被所有程序...

2019-08-27 11:25:57 98

原创 内存泄漏

内存泄漏

2019-08-27 10:41:50 134

原创 经典面试题之 : malloc/free和new/delete 的区别

1 malloc/free和new/delete 共同点malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放2 malloc/free 和 new/delete的不同1 malloc/free 是函数 new/delete 是操作符2 malloc 申请的空间不可以初始化,而new出来的空间可以初始化3 malloc 申请空间时需...

2019-08-19 14:07:20 633

原创 C++中的动态内存管理

1 C&C++中的动态内存管理C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力而且使用起来比较麻烦,因此C++又提出 了自己的内存管理方式:通过new和delete操作符进行动态内存管理。2 C++中如何实现动态内存管理...

2019-08-19 13:52:43 147

原创 C语言中的动态内存管理

C语言中的动态内存管理

2019-08-19 11:38:29 140

原创 详解结构体的大小计算

求一个结构体的大小

2019-08-19 10:27:30 251

原创 刷题之------倒置字符串

题目: 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割示例1输入I like beijing.输出beijing. like I代码实现如下方法一:...

2019-08-17 11:56:39 163

原创 文件系统

1 什么是文件系统文件系统的全称是文件管理系统,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。2 文件系统的组成2.1 超级块超级块是存储了文件系统本身的相关信息(记录文件系统的属性及介绍)2.2 数据块数据块是真正存储数据的地方...

2019-08-16 11:12:36 139

原创 cookie机制/ session机制

1 为什么需要cookie 和session机制?由于HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。这就很麻烦,要跟踪该会话,必须引入一种机制,于是呢,我们的cookie /session 机制应运而生。2 cookie 机制是什么由于HTTP协议是一种无状态的协议,服务器端无法识别用户身份,...

2019-08-12 21:00:42 97

原创 基础IO之文件描述符

1回顾 在C语言中 标准库IO接口都有什么?打开文件 : fopen(r/r+/w/w+/a/a+/)关闭文件 : fclose 函数 fopen 打开文件名为 path 指向的字符串的文件,将一个流与它关联。 参数 mode 指向一个字符串,以下列序列之一开始 (序列之后可以有附加的字符): r 打开文本文件,用于读。流被定位于文件的开始。 r+...

2019-08-11 21:41:25 430

原创 网络编程总结(内容绝对丰满)

2019-08-11 15:32:15 76

原创 一文让你透彻理解 C++中的this指针

1 为什么需要this 指针?现在我们封装了一个类,这个类里有成员变量,也有成员函数。现在我们用类来实例化一个对象。现在我们实例化出来的对象要调用类中的成员函数,但是,我们的实例化该怎么去调用访问函数呢? C++ 中每个成员函数的参数中都有一个指针形参,这个指针形参就是this指针,我们的实例化对象在调用成员函数的时候,将自己的地址作为实参,拷贝一份传给成员函数中的this指针,然后,实例...

2019-08-03 21:07:36 140

原创 const关键字总结

1 const关键字的作用凡是经const修饰过的内容,只具有读的权限,不具有写的权限。也就是说,被const修饰的内容不可修改。可以提高程序的健壮性。2 const关键字的一些使用场景及注意事项1.const关键字修饰变量const int a;变量a经过const修饰过后,a的值就不可被修改,且2 const关键字与宏(1)const关键字具有宏的属性,经过const修饰过后的...

2019-08-03 18:07:29 102

原创 封装的思想

说一下封装1 什么是封装2 c++如何实现封装

2019-07-31 14:08:43 1836

原创 HTTP协议解析

1 HTTP协议是什么HTTP协议是工作在应用层的一种知名的通信协议(大佬程序员写的),负责应用程序之间的数据沟通。HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。2 HTTP协议的格式解析首行:请求首行: 请求方法(get/head/post/put/delete) url 版本协议(0.9/1.0/1.1...

2019-07-30 17:08:33 237

原创 UDP协议的解析

1 UDP协议格式字段信息: 16位端口号 /16位目的端口号 /16位数据报长度 /16位校验和16位源端口/目的端口 : 实现端与端之家的数据传输-----数据从哪个进程来,要到哪个进程去16位校验和: 检验接收的数据和发送的数据是否一致16位数据报长度: udp数据报的总长度(包含udp头部信息在内)2 UDP协议的特点(类似于寄信)无连接: 知道对端的IP和端口...

2019-07-30 16:10:06 457

原创 cpu访问速度与存储种类的关系

一 概述1 cpu寄存器 访问速度极快,存储空间更小,成本更高2 缓存介于CPU与内存之间,访问速度非常快3 内存访问速度快,存储空间小,成本高4 外存访问速度较慢,存储空间大,成本低二不同角度剖析差异1 在访问速度上CPU的寄存器 >> 缓存 >> 内存 >>外存(磁盘)注:符号 >> 表示更快2 在存储空间大小上CPU的...

2019-07-30 11:04:28 1237

原创 在浏览器中输入一个 URL ,然后回车发生了什么

1 什么是URL在万维网(www)上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是某一信息资源的统一资源定位标志,简单来说就是网址2 什么是域名?域名就是网站IP地址的一种映射关系,通过域名可以直接访问该网站的IP地址进而访问到该网站.3 在浏览器上输入一个URL,然后回车发生了什么(1) 进行域名...

2019-07-29 21:54:53 299

原创 网络基础(2)

1 为什么要有 网络字节序字节序: CPU在内存中对数据的存取顺序–针对大于一个字节的数据类型主机字节序: 一个主机的大小端字节序取决于CPU架构–x86(小端),mps(大端)网络字节序:统一规定为大端字节序(标准化,便于不同主机之间的通信)在网络通信中(两台不同主机之间的通信)–通信双方并不知道对方的主机字节序因此为了避免由于通信双方主机字节序的不同而导致的数据传输的二义性,就采用...

2019-07-29 10:25:27 126

原创 TCP协议(详解)

1 什么是TCP协议?TCP,英文全称为Transmission Control Protocol(传输控制块),TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。2 TCP协议的通信流程客户端: 1 创建套接字 ->2为套接字绑定地址信息(客户端不推荐主动绑定)->3向服务端发起连接请求->4发送数据->5接收数据->6关闭套接字服务端: 1...

2019-07-29 10:17:57 472

原创 生产者与消费者模型

1 什么是生产者与消费者模型生产者与消费者模型是一种编程模型,它用来解决生产者线程与消费者线程数据交互的问题,简单来说.现有一个生产者与消费者模型,该模型由生产者线程和消费者线程组成。 生产者线程指的是生产数据提供数据的线程,消费者线程指的是处理数据的线程。生产者线程生产好数据以后,将数据放到一个指定的地方,然后消费者线程拿走数据去处理。2 生产者与消费者模型的应用场景一个线程产生数据,另一...

2019-07-11 11:20:14 282

原创 线程安全 及其实现

1 什么是线程安全?线程安全是指.多个线程同时对临界资源进行竞争性访问而不会造成数据的二义性(大家共享进程的大部分资源,都可以使用全局资源,但是不发生混乱)我们都知道一个进程中的所有线程共享该进程的资源,从而使得线程间通信变得更加方便,这是它的优点.诚然我们也知道凡事都得一分为2的看,正是由于多个线程共享数据,所以容易发生冲突,可以说,这种混乱和冲突发生的风险是存在的,因此为了我们的各个现...

2019-07-11 09:52:51 154

原创 网络基础(1)

1 为什么需要网络在运行具体业务,需要处理数据时,需要多个人之间的协作,因此产生可数据在多台计算机之间传输需求,在网络出现以前,数据需要通过拷贝才能传到与业务相关的其他计算机中,这样也能处理一些简单的业务,但是这种传输数据的速度和效率太低,需要一定的的时间成本,数据传输的低效率又导致工作的低效。于是呢,网络通信正是为了解决这个痛点而生,网络出现以后,可以将多台计算机连接在一起,可以直接进行数据的...

2019-07-09 10:11:50 143

原创 在 c 语言中 sizeof 和strlen 的区别

1 从他们各自的属性而言, sizeof是运算符,而strlen是一个函数2 从功能上讲. sizeof 它是从内存角度出发,它用来求所占字节数,也就是说是求占内存大小,在c 语言中,是将字符串作为字符数组来处理的, c系统在存储字符串时,会自动在后面加一个 \0 作为一个字符串结束标志,因此在用sizeof 求字符串所占字节大小时包括 \0 的大小。而strlen是一个关于处理字符串的...

2019-07-08 15:06:48 72

原创 vector容器应用----代码详解

1 vector的构造访问遍历// vector 容器 连续存储空间 动态数组#include<iostream>using namespace std;#include<vector>#if 0int main(){ vector<int> v1; // 无参构造 vector<int >v2(10, 5); //构造的同时...

2019-06-28 21:05:03 151

原创 string 类应用-----代码详解

1 string 类的常用构造#include<iostream>using namespace std;#include<string>// string类对象的常用构造int main(){ string s1;// 构造空字符串(里面\0) string s2("hello world");//用c语言方式构造 string s3(10, ...

2019-06-28 15:49:35 120

原创 进程和线程

进程与线程进程的概念: 对用户来说,是从应用角度出发 : 进程对用户而言,就是一个打开的应用程序,比如说,一个打开的Word,PPT等等.**而对于操作系统来说,**是从管理的角度出发,一个程序要在操作系统上面运行,必须接受操作系统的管理,怎么管理呢,一个核心思想就是,先描述,再组织 ,首先你要在我这边登记一下,你要来运行,我就给你一个pcb ,这个pcb上面存储关于你的所有必要信息,我根据...

2019-06-27 15:25:52 140

原创 谈线程

1 线程是什么线程是一个 执行流(运行代码,处理数据),简单来说是一段代码,一个函数线程的概念:1 先说进程: 操作系统中使用PCB来描述一个程序的运行-------PCB就是进程2 Linux下PCB用来模拟实现线程,因此Linux下的PCB实际上是一个轻量级的进程进程是资源分配的基本单位----因为程序运行时资源是分配给整个线程组(进程)的线程是CPU调度的基本单位**2...

2019-06-26 23:53:46 94

原创 共享内存-------进程间最快的通信方式

1.共享内存通信方式的实现原理是什么?首先申请一块物理内存,然后将这块物理内存通过页表映射到需要进行通信的进程的虚拟地址空间中,然后进程可以通过访问虚拟地址从而间接的访问共享物理内存,每一个与共享物理内存建立映射关系的进程都可以实现进程间通信2.共享内存通信方式的具体实现过程1.通过shmget函数来开辟共享物理内存int shmget(key_t key,size_t size,int...

2019-06-26 09:11:26 2938

原创 信号

进程信号1 信号是什么信号是一个软件中断,是传递给进程的一个通知,通知进程发生了某件事情,让它把手头的事情先放下,赶紧去处理刚刚通知的这件事情.2 信号的种类信号总共有62种—这62种信号又分为两大类型.一种叫做不可靠信号(信号编号为1—31).一...

2019-06-21 16:34:51 132

原创 宏和内联函数的区别

宏和内联函数的区别总结: 内联函数是对宏的优化1 宏宏常量 例:#deifne PI 3.14优点:一改全改,调高代码的复用性提高性能缺点:定义宏出错时,不容易定位错误,因为预处理阶段进行了替换(代码展开)在c++中对宏常量进行了优化 : 用const 修饰变量 同时const具有宏常量的属性int main() { const int a = 10; ...

2019-06-17 13:50:19 1012

原创 排序算法哪家强之快速排序(递归版本)

今天接着继续我们的排序算法哪家强系列今天给大家介绍一种新的排序算法----快速排序算法,听这名字就知道快速排序算法的特点,那就是快. 具体有多快呢,我之前给大家也介绍了几种排序算法,现在,我们将各大排序算法的效率进行一个汇总展示,各种排序算法效率对比一目了然快速排序的核心思想如下:首先,从给定的数组中找到一个基准值,然后以基准值为划分标准,将该数组划分为两部分,一部分大于该基准值,另一部...

2019-06-16 23:37:44 121

原创 Linux文件系统中的软链接与硬链接

1 什么是链接在文件系统中,链接指的是存储在在存储空间中的文件和文件系统组织管理文件之间的连接关系我们知道文件系统要想对存储在计算机中的文件进行管理,首先要对他进行描述,再对他进行管理,举个例子,我们大中国有很多的公司,国家肯定要对其进行约束管理,怎么管理呢,首先公司在创立前要在商务部备案,简单来说,就是,你得来我这儿登记一下,我需要知道你的信息(公司名称,注册资金大小)你在我这登记注册了我就...

2019-06-11 10:42:52 446

原创 指针 和引用 自由 与 禁锢

引用和指针的区别1 指针指针就是地址2 引用引用是给已经存在的变量取别名备注: 引用在语法概念上,就是一个别名,没有他自己的独立空间,和引用实体共用一段内存空间引用在底层实现上,实际上是有空间的,它在底层是按照指针的方式来实现的int main(){ int a = 10;; int &ra = a;//给变量a取别名 cout &...

2019-06-10 14:29:24 128

原创 传值 传地址 传引用 的区别

传值 传地址 传引用1 传值优点: 函数的副作用不会影响外部的实参 ;代码可读性较高缺点: 传参效率低 ; 不能通过形参改变实参 ,对实参有保护作用 void swap(int x,int y){ int temp=x; x=y; y=temp; }2 传地址优点: 传参效率高 传地址只需要4个字节(确定) 传值变量大小不确定,有可...

2019-06-10 14:21:00 779

原创 谈谈进程

1 进程是什么?对于用户来说,进程就是正在打开的应用,也就是正在运行的程序对于操作系统来说,经常就是对一个程序运行状态的描述信息2进程存在的价值(作用)一个程序要想在操作系统上运行,必须先加载到内存中,然后等CPU来光顾(分配资源). 因为操作系统上运行的程序有多个,都等着操作系统分配资源,要想得到CPU的资源必须先接受操作系统的的管理. 要实现管理就必须先对这些程序进行描述,先描述再管理...

2019-06-08 16:02:22 209

原创 当我们在谈程序地址空间时,我们在谈什么?

结论 :我们所说的程序地址空间其实就是虚拟地址空间**1 why : 为什么要有虚拟地址空间 ? ? ?产生背景: 在以前,那时候还没有虚拟地址空间 计算机的内存比较小, 要运行的程序比较多,狼多肉少,完全分不过来而且,一个程序必须在连续的内存空间上才能运行, 由于待运行程序所占的内存空间大小不一,所以会产生一些内存碎片,比如现在内存只有5MB 而现在由一个6MB...

2019-06-08 14:20:44 199

空空如也

空空如也

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

TA关注的人

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