![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
概念
biuobiu
这个作者很懒,什么都没留下…
展开
-
多态及编译器实现
多态性:简单概括“一个接口,多种方法”目的:接口重用,自适应调用实现方法分为:编译时多态(静态多态):重载函数运行时多态(动态多态):虚函数实现重写有两种,直接重写成员函数和重写虚函数,只有重写了虚函数的才能算作是体现了C++多态性。注:覆盖也称重写编译器实现:当类中声明虚函数时,编译器会在类中生成一个虚函数表:(1)虚函数表是一个存储类成员函数指针的数据结构,它是一个类中所有虚成员函数的集合;(2)虚函数表是由编译器自动生成与维护的;(3)virtual成员函数会被编译器放入虚函数表原创 2021-08-20 10:08:21 · 217 阅读 · 0 评论 -
c++四种类型转换
const_cast只能对指针或者引用去除或添加const属性。static_cast编译时处理只有上行转换是安全的(上行转换:子类向基类的转换)dynamic_cast运行时处理且只能用于含有虚函数的类上行转换是安全的,下行转换会进行类型检查。转换不成功:指针返回空,应用抛出异常。reinterpret_cast1.指针和整数之间的转换2.不同类型的指针/成员指针/引用之间的转换...原创 2021-08-14 11:58:20 · 99 阅读 · 0 评论 -
段与页寻址
内存管理:连续分配管理方式和非连续分配管理方式(基本分页存储管理、基本分页存储管理、段页式存储管理)区别分页:页:1.是信息的物理单位2.用户不可见3.实现离散分配,提高内存利用率段:段是信息的逻辑单位2.用户可见3.更好满足用户的编程基本分页存储管理:注释:1.页框=页帧=内存块=物理块=大小相等的分区;2.每个进程建立一张页表(查页面存放的位置)3.页表:页号 +块号4.页表寄存器(PTR) 页表在内存中的起始位置F+页表长度M(未执行二者在PCB中);分页存储管理流原创 2021-07-06 14:34:46 · 311 阅读 · 0 评论 -
进程/线程通讯方式
进程间的通信方式:1.管道:是指用于连接读写进程的一个共享文件。1.1.无名管道(PIPE):1.1.1用于有亲缘关系的父子进程1.1.2半双工1.1.3管道写满时,write阻塞,管道变空read被阻塞。1.1.4.不是不同文件,不属于任何文件系统,只存在内存中1.2命名管道(FIFO):1.2.1还允许无亲缘关系的进程通讯1.2.2有文件路径名与之关联,特殊设备文件形式存在文件系统中。2.系统IPC消息队列信号量(PV)共享内存3.套接字线程通信的方式:临界区锁机制:原创 2021-07-06 11:46:03 · 63 阅读 · 0 评论 -
进程与线程的区别
1.进程是资源调度的最小单位,线程是CPU调度的最小单位。2.一个进程对应一个或多个线程。3.进程拥有独立内存空间,而线程不是。每个线程独自占有一个虚拟处理器,独自的寄存器组,指令计数器和处理器状态。共享同一地址空间(代码段(代码和常量),数据段(全局变量和静态变量),映射文件,拓展段(堆)),但是每个线程都有自己的栈段(局部变量+临时变量)。4.系统开销。1.进程:CPU环境的设置与内存空间分配,IO设备等。2.线程:保持设置少量寄存器5.通信方式6.进程调试简单。7.进程不会互相影原创 2021-07-06 11:22:26 · 44 阅读 · 0 评论 -
CPU内存结构
4GCPU=(0-3G)用户态+(3-4G)内核空间静态区域代码段(text segment):只读存储区(字符串常量)+文本区(程序的机器代码)数据段(date segment):存储程序中已初始化的全局变量+静态变量bss segment:未初始化的全局变量+静态变量动态区域:堆区(heap)调用malloc分配堆,运行阶段break改变堆的大小映射区(memory mapping segment)存动态链接库等文件映射,大内存用mmap函数分配到匿名内存映射(目前以128KB为原创 2021-07-06 10:56:08 · 116 阅读 · 0 评论 -
OSI模型
应用层:提供应用程序间通信;表示层:处理数据格式、数据加密等;会话层:建立、维护和管理会话;传输层:建立主机端到端连接;网络层:寻址和路由选择;数据链路层:提供介质访问、链路管理等物理层:比特流传输。...原创 2021-07-06 10:08:10 · 75 阅读 · 0 评论 -
http协议
webservice=http协议+XMLRest=http协议+jsonhttp请求信息和响应信息的格式请求行:请求方法+请求路径+所用协议版本请求行信息 n* key value空格请求主体信息(可以没有)请求方法:GET POST PUT DELETE TRACE OPTION响应行:协议版本+状态码+状态文字(解释状态码)响应头信息 n* key value(content-length:主体长度)响应主体信息head和get一样,只不过head不返回内容1** 信息2**原创 2021-07-05 20:47:13 · 48 阅读 · 0 评论 -
GET和POST的区别
1.GET用url传递参数(url尾部,HTTP的请求头里),而POST用request body(请求体)。2.GET有长度限制,而POST没有。3.GET暴露在url里,更没有安全性。4.GET只能进行url编码(只允许ASCLL字符),而POST(对数据类型没有要求)可以支持多种编码方式。5.GET请求可以被缓存、收藏、保留到历史记录中。6.GET和POST本质上都是tcp连接,但是http的规定和浏览器/服务器的权限,所以导致了差异。7.GET只产生一个tcp数据包,而POST产生两个。原创 2021-07-05 20:35:29 · 69 阅读 · 0 评论 -
https连接过程
1.客户端向服务端发布请求,同时发送客户端支持的一套加密规则(包括对称加密、非对称加密、摘要算法)2.服务端从中选出一组机密算法和hash算法,并将自己的身份信息以证书的形式发送给浏览器(证书包括:网站地址,加密公钥(非对称加密使用,客户端使用),证书颁布机构)3.客户端判断服务器证书的合法性。(包括:证书是否过期,CA是否可靠,发行者证书的公钥是否能正确解开服务器证书的“发行者的数字前面”,服务器证书上的域名是否和服务器的实际域名相匹配。)4.如果证书不受信任,或者证书不受信任,浏览器会生成一个随机原创 2021-07-05 20:20:02 · 119 阅读 · 0 评论 -
字符串读取
cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,然而cin.getline()每次读取一整行并把由Enter键生成的换行符抛弃。原创 2021-04-24 13:14:18 · 159 阅读 · 0 评论