自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 HTTP协议版本及特征

1、HTTP 0.9HTTP 0.9是第一个版本的HTTP协议,已过时。它的组成极其简单,只允许客户端发送GET这一种请求,且不支持请求头。由于没有协议头,造成了HTTP 0.9协议只支持一种内容,即纯文本。不过网页仍然支持用HTML语言格式化,同时无法插入图片。HTTP 0.9具有典型的无状态性,每个事务独立进行处理,事务结束时就释放这个连接。由此可见,HTTP协议的无状态特点在其第一个版本0.9中已经成型。一次HTTP 0.9的传输首先要建立一个由客户端到Web服务器的TCP连接,由客户端发起一个请

2020-08-25 17:15:06 2576 8

原创 drop、truncate和delete的区别

一、deletedelete是DML(data maintain Language,这个操作会被放到 rollback segment中,事务提交后才生效),执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。del

2020-08-17 20:38:20 1980

原创 重载、重写、重定义——三种同名函数的不同处理方式

重载、重写、重定义的区别:重载在一个类中的重名函数,由于函数参数个数/类型的不同(形参列表不同),导致使用不同的函数进行处理,这种情况称为重载。class A{ public: void show(){ cout << "show()" << endl; } void show(int x){ cout << "show(int x):"<< x << endl; }};int main(){ A a;

2020-08-15 23:07:47 2142 32

原创 MySQL-多表操作

多表查询联合查询联合查询是多表查询的一种方式,在保证多个SELETE语句的查询字段数相同的情况下,合并多个查询的结果SELECT···UNION [ALL|DISTINCT] SELECT···[UNION [ALL|DISTINCT]SELECT···];在上述语法中,UNION是实现联合查询的关键字,ALL和DISTINCT是联合查询的选项,其中ALL表示保留所有的查询结果;DI...

2020-08-04 22:30:52 2570

原创 Redis相关知识点汇总

MongoDB和Redis有什么区别?内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。支持的数据结构上:Redis 支持的数据结构丰富,包括hash、set、list等。MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。mysql引擎以及其区别在

2020-08-03 17:49:34 2019

原创 Linux虚拟内存和缺页中断

Linux虚拟内存地址空间为了防止不同进程同一时刻在物理内存中运行而对物理内存的争夺和践踏,采用了虚拟内存。虚拟内存技术使得不同进程在运行过程中,它所看到的是自己独自占有了当前系统的4G内存。所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。 事实上,在每个进程创建加载时,内核只是为进程“创建”了虚拟内存的布局,具体就是初始化进程控制表中内存相关的链表,实际上并不立即就把虚拟内存对应位置的程序数据和代码(比如.text .data段)拷贝到物理内存中,只是建立好虚拟

2020-08-02 21:46:06 2567

原创 进程和线程的概念、区别及进程线程间通信

进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的?1. 基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他

2020-08-02 16:24:25 4194 2

原创 什么是右值引用?跟左值有什么关系?

右值引用右值引用是C++11中引入的新特性 , 它实现了转移语义和精确传递。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。能够更简洁明确地定义泛型函数。左值和右值的概念:左值:能对表达式取地址、或具名对象/变量。一般指表达式结束后依然存在的持久对象。右值:不能对表达式取地址,或匿名对象。一般指表达式结束就不再存在的临时对象。右值引用和左值引用的区别:左值可以寻址,而右值不可以。左值可以被赋值,右值不可以被赋值,可以用来给左值赋

2020-08-01 23:12:44 1155

原创 STL中迭代器有什么作用作用,有指针为何还要迭代器?

1. 迭代器Iterator(迭代器)模式又称游标(Cursor)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。由于Iterator模式的以上特性:与聚合对象耦合,在一定程度上限制了它的广泛运用,一般仅用于底层聚合支持类,如STL的list、vector、stac

2020-08-01 22:34:59 1987

原创 请讲讲vector和list的区别和应用

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

2020-08-01 22:05:04 631

原创 STL中的allocaotr到底是什么?

STL之空间配置器STL的分配器用于封装STL容器在内存管理上的底层细节。在C++中,其内存配置和释放如下:new运算分两个阶段:(1)调用::operator new配置内存;(2)调用对象构造函数构造对象内容delete运算分两个阶段:(1)调用对象希构函数;(2)掉员工::operator delete释放内存为了精密分工,STL allocator将两个阶段操作区分开来:内存配置有alloc::allocate()负责,内存释放由alloc::deallocate()负责;对象构造由::c

2020-08-01 21:34:17 1118 1

原创 map和set有什么区别,他们又是如何实现的?

1.AVLTree和RBTree的实现(map和set的底层实现)2.map和set都是C++的关联容器,其底层实现都是红黑树(RB-Tree)。由于 map 和set所开放的各种操作接口,RB-tree 也都提供了,所以几乎所有的 map 和set的操作行为,都只是转调 RB-tree 的操作行为。3.map和set的区别在于:map中的元素是key-value(键值对)对:关键字起到索引的作用,值则表示与索引相关联的数据;Set与之相对就是关键字的简单集合,set中每个元素只包含一个关键字。

2020-08-01 21:22:47 3332

C语言基础.xmind

本文档是C语言基础的思维导图,主要是关于学习C语言的基础路径,对C语言初级涉及到的知识点做的总结。包括数组、内存、指针、C语言I/O流等知识点。

2020-04-16

空空如也

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

TA关注的人

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