自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FTP协议

1.简单来说 FTP协议属于应用层协议,File Transfer Protocol,文件传输协议,简单来说FTP协议是面向文件传输的协议。2.复杂点来说 (1)FTP和HTTP一样都是在Internet上广泛传输的协议,用来在两台计算机之间互相传输文件。相比于HTTP,FTP协议要复杂许多。因为FTP协议要用两个TCP链接,一个是命令链路,用在FTP客户端与服务...

2019-08-30 13:17:35 393

原创 封装,继承,多态

封装: 定义:就是将抽象得到的数据和行为相结合,形成一个有机整体,也就是将数据和代码进行有机的结合,形成类,其中的数据和函数都是类的成员,目的在于将对象的使用者和设计者分开.以提高软件的维护性和可修改性. 特性: 1.结合性,即就是将属性和代码结合.2.信息隐藏性,利用接口机制隐藏内部的实现细节,只留下接口给外界调用3.实现代码的重用. 继承: ...

2019-08-21 14:32:19 194

原创 GET和POST的区别

1、概括对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)2、区别:1、get参数通过url传递,post放在request body中。2、get请求在url中传递的参数是有长度限制的,...

2019-08-12 11:26:15 199

原创 页面置换算法

比较常见的内存替换算法有:FIFO,LRU,LFU,LRU-K,2Q。1、FIFO(先进先出淘汰算法)思想:最近刚访问的,将来访问的可能性比较大。实现:使用一个队列,新加入的页面放入队尾,每次淘汰队首的页面,即最先进入的数据,最先被淘汰。弊端:无法体现页面冷热信息2、LFU(最不经常访问淘汰算法)思想:如果数据过去被访问多次,那么将来被访问的频率也更高。实现:每个数据块...

2019-08-12 10:14:29 221

原创 vector和list的区别

1、概念:1)Vector连续存储的容器,动态数组,在堆上分配空间底层实现:数组两倍容量增长:vector 增加(插入)新元素时,如果未超过当时的容量,则还有剩余空间,那么直接添加到最后(插入指定位置),然后调整迭代器。如果没有剩余空间了,则会重新配置原有元素个数的两倍空间,然后将原空间元素通过复制的方式初始化新空间,再向新空间增加元素,最后析构并释放原空间,之前的迭代器会...

2019-08-11 18:17:42 154

原创 智能指针

C++里面的四个智能指针:auto_ptr,shared_ptr,weak_ptr,unique_ptr其中后三个式C++11支持,并且第一个已经被11弃用。使用智能指针的原因 智能指针的作用是管理一个指针,因为存在一下情况:申请的空间在函数结束结束的时候忘记了释放,造成内存泄漏,使用智能指针可以很大程度上避免这个问题,因为智能指针就是一个类,当超出类的作用域时,类就会调用析构函数,析构...

2019-08-11 16:59:19 170

原创 static关键字的作用

1.全局静态变量在全局变量之前加static,全局变量就定义为一个全局静态变量。内存中的位置:静态存储区,在整个程序运行间一直存在初始化:未经初始化的全局变量会被自动初始化为0(自动对象的值是任意的,除非它被显示初始化)作用域:全局静态变量在声明它的文件之外不可见,准确的说从定义点开始,到文件结束。2.局部静态变量在局部变量之前加上关键字static,局部变量就成为一...

2019-08-10 11:44:15 126

原创 fork()与vfork()的内核剖析

fork() Linux通过clone()系统调用实现fork().这个调用通过一系列的参数标志来指明父,子进程需要共享的资源。fork(),vfork()和_clone()库函数都根据各自需要的参数标志去调用clone(),然后由clone()去调用do_fork(); do_fork()完成创建中的大部分工作,它在定义的kernel/fork.c文件中。该函数调用c...

2019-08-08 12:43:55 185

原创 gcc和g++的区别

共同点:都可以用来编译后缀名为:.c 和.cpp文件。gcc是鼻祖,后来才出现g++;不同点:1.g++会自动链接c++的编译库:比如algorith,string,vector等。2 .gcc会根据后缀名(.c 和.cpp)自动识别是C文件还是C++ 文件,而g++会均认为是C ++文件。3. gcc编译文件少了许多宏,而g++编译文件多了许多宏,类如#defi...

2019-08-07 12:39:33 147

原创 大小端的判断

1.何为大小端 大端模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中 小端模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在 内存的高地址中。2.为什么会有大小端之分 在计算机系统中,我们以字节为存储单位,每个地址的单元都是对应的一个字节,一个字节为8bit.在C语言中,不仅仅是一个字节来存储数据,除了一个字节...

2019-08-07 11:12:18 451 1

原创 用户态切换到内核态(补充)

刚刚看了别的博文,才知道不是只有系统调用才切换到内核态,还有别的操作可以切换到内核; 1.系统调用 这是用户态进程主动要求切换到内核的一种方式,用户态进程通过系统调用申请使用操作系统提供的的服务完成工程的过程,比如fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放了一个中断来实现的,例如Linux的int&a...

2019-08-07 10:12:35 408

原创 从用户态切换到内核态

在Linux系统中,每个系统调用被赋予一个系统调用号。这样通过这个系统调用号就可以关联系统调用。当用户空间执行的进程执行一个系统调用的时候,这个系统调用号就告诉内核需要调用哪个。 内核记录了系统调表中所有已注册过的系统调用的列表,这个表为每一个有效的系统调用指定了唯一的系统调用号。 用户空间程序无法完成的代码。它们不能直接调用内核的中的函数,因为内核驻留在受保...

2019-08-07 09:45:06 1134

原创 二进制中1的个数

思路:对于一个整数,每次与它减一的数做与运算,总会消除它二进制中最右边的1。因此直到它做与运算到0是的次数即为它二进制中1的个数# include<iostream>using namespace std; int fun(int n){ int count = 0; while (n) { count++; n = n &(n - 1); } ...

2019-08-05 20:47:21 236

原创 静态库和动态库

1.何为库 库文件是预先编译好的方法的集合。 在windows系统下,静态库的扩展名为:.lib 动态库的扩展名为:.DLL 在Linu系统下,静态库的扩展名为:.a, 动态库的名称为:.so2.特点 静态库:在链接的过程中,连接器从库文件中取得所需的代码,复制到生成的可执行文件中。因此,静态库在程序的链接阶段被复制到程序中,...

2019-08-05 20:42:10 351

原创 重载,隐藏,覆盖

在C++中同名的函数有三种:1.重载:又称(重定义) 同名 同作用域 不同参数(参数类型,参数个数,参数顺序);#include<iostream>using namespace std;void fun(int a,int b){ cout<<"int int"<<endl;}void fun(double a,do...

2019-08-04 16:36:31 175

原创 原码,反码,补码的计算

一、整数:(1)正数(符号位为0):原码,反码,补码均一致(2)负数(符号位为1):原码:二进制表示反码:符号位不变,其余取反 补码:反码+1 例如-5的原码:1000 0101 反码:1111 1010 补码:1111 1011二、小数(1)正数(符号位为0):原码,反码...

2019-08-04 14:46:25 5136 2

原创 C++的四个强制类型转换

reinterpret_cast:一个指针转化为其他类型的指针时,不做类型检测,操作结果是一个指针指向另一个指针的值的二进制拷贝;static_cast:允许执行隐式转换和相反的转换操作,父类转换为子类是强制转换Son *son=static_cast(father),而子类转换为父类就是隐式转换;dynamic_cast:用于对象的指针和引用,当用于多态类型转换时,允许隐式转换及相反的过...

2019-08-04 14:16:49 196

原创 写时拷贝技术

写时拷贝的主要思想是在复制原来实体的时候,如果复制后的实体不需要进行改变,那么实际上没必要进行实体内容的拷贝,只需建立一个引用指向原来的实体内存,直接应用原来的实体内容即可,只有当需要对复制后的实体进行修改的时候才进行内容的拷贝。写时拷贝技术在很多方面都有应用,典型的有: C++中的写时拷贝技术 ...

2019-08-02 21:03:09 304

原创 长连接与短链接

HTTP1.1版本之前没有长连接,直到HTTP1.1才出现长连接,而且HTTP1.1默认使用长连接。1.什么是长连接和短连接 很多人在这里就会有这样一个误区:http协议分为长连接和短连接 HTTP是应用层的请求/响应协议,HTTP协议只是对客户端发来的请求做出响应,而具体的数据传送以及网络上路由的选择是在传输层和网络层进行的。由此可以得出:建立连接这一过程并不属于应用层...

2019-08-02 20:33:00 214

空空如也

空空如也

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

TA关注的人

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