自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 网络传输序列化以及序列化形式(文本、二进制)

当对象需要持久化到硬盘或者网络传输的时候,我们需要进行序列化(也就是保存内存中的对象的状态)序列化就是将内存中的对象流化,方便我们进行写入读取为什么要序列化,因为在对象中可能会保存有指针,或者是其他对象的引用。如果我们不加处理,将指针保存,这是没有意义的,因为反序列化的时候是重新分配内存的。如果有其他的对象的引用,我们不能为每个对象都保留一份副本。另外需要网络传输的时候,序列化也要考虑统一字节序以...

2018-04-08 16:17:22 3132

原创 VFS粗略总结

参考以下两篇文章http://blog.csdn.net/yuzhihui_no1/article/details/51272563http://blog.csdn.net/shanshanpt/article/details/39026915VFS虚拟文件系统,是对于用户的接口,它允许硬盘中有多种文件系统,而VFS屏蔽了底层的差异,使得对于上层看来底层是一样的。在Linux的task_struc...

2018-03-05 18:38:02 294

原创 linux从可执行文件到虚拟内存

可执行文件总结,基本上是参照下面这篇文章,而虚拟内存是自己根据深入理解计算机系统自己总结的。http://blog.csdn.net/fyl027/article/details/78064697一:可执行文件格式,1、Linux中的ELF,windows下面的PE,他们都是COFF格式的变种。2、文件内容(1)代码段:程序源代码编译的机器指令(2)数据段:已经初始化了的全局变量和局部静态变量(3...

2018-02-28 23:01:31 940

原创 python可变对象以及不可变对象以及+=和=+的区别

可变对象 list  dict set不可变对象 数值型(int float)  字符串类型   tuple对于不可变对象  int float string 来说,类似于c中的字符串常量(const char *) a=5,b=5 id(a)与id(b)是一样的,即a和b指向同一块内存区域    对于string来说也是这样的。当a=6的时候,此时a指向的是另一块区域了。所以说对象是不可改变的。...

2018-02-14 16:48:57 910

原创 c语言指针的问题

#include<iostream>#include<vector>using namespace std;void print(int *p,int m,int n){for(int i=0;i<m;i++){for(int j=0;j<n;j++){cout<<*(p+i*n+j)<<" ";}}}main(){int dp[3][4...

2018-02-02 21:08:05 145

原创 c++四种转换以及内存对齐和虚函数

1,c++四种转换,,这四种转换都不会对强制转换的对象造成什么影响(static_cast(b),假设b是float类型,那么返回值是int类型,但是b还是float类型)。其中static_cast const_castreinterpret_cast是在编译的时候就能够进行转化了,而dynamic_cast是在运行的时候才进行转换的。1.1 static_cast 对于内置数据类型

2018-02-01 17:16:58 310

原创 事物属性,以及锁

事物定义:访问并可能更新数据库的执行单元,有4个属性,语句多事begin transaction  end transaction1,事物的属性1.1 原子性:事物的所有操作要么全部执行,要么全部不执行,这个主要是通过日志来实现,日志中会记录我们修改的事物标识符,修改的数据项标识符以及数据项的旧值和新值,只有将这些写入了日志后,数据库才会进行事物执行,以确保出错时候可以回滚1.2 隔离

2018-01-31 19:15:08 305

原创 数据库索引总结

1、磁盘1.1:磁盘结构:磁盘臂组件,磁盘片,磁盘片中一个圆环是一个磁道,磁道分成许多扇区,扇区是存储的基本单位。1.2:磁盘读写:寻道,也就是磁盘臂左右转动到需要的磁道,磁盘片转动到合适的扇区1.3:扇区和块(页):操作系统为了减少读写次数,将许多扇区组成一起进行读写,叫做块,块不能太小(读写次数多),也不能太大(浪费空间),现代操作系统一般为4K。2、文件组织文件组织:数据库被映射到不同的文件...

2018-01-29 22:01:10 194

原创 计算机网络总结

https协议是这样的https协议的请求的请求行,以及请求头部都是基于文本协议的,所以实现http协议的时候,最好用getline类似的函数去读,tcp层按照编号将数据组装好,https协议将数据读到缓冲区后,一行一行的读取,并逐渐解析,因为post请求是有基于二进制的文件的数据段,所以在https的实现中,在请求头部中有数据段的大小,并且请求头部和数据部分用两个换行

2018-01-26 21:56:10 301

原创 大端字节小端字节

对于int型变量 x= 0x12345678在大端和小端的表示如上,可以看出来,大端是数字的高位放在内存的低字节上面,小端是相反的。之所以在网络传输中会遇到错误原因是,比如上述这个整形,在客户端用write写入到套接字中,四个字节,在服务器也是接受到这样的四个字节,假设服务器端是小端,客户端是大端字节,那么服务器端cpu就会认为是12是低位,这样就会出错误,所以传输的时候最好是先要序列化和反序列化

2018-01-07 11:04:04 476

原创 各个编码之间的关系

ascall编码是占用1个字节   但是表示的字符有限 于是各国有各国独特的标准,比如中国的就是GB2312  ,为了统一管理,就出现了unicode,通常字符为两个字节代表一个字符(生僻的汉字也是4个字节代表一个),但是如果为纯英文,又会浪费存储空间,于是utf-8出现了是操作系统和编程语言以及软件支持各种编码,而对于cpu来说,无所谓的都是数字,可以设置操作系统的编码方式,以及各个软件

2018-01-07 09:16:53 1202

原创 可重入函数 线程安全

本人是渣渣  东西都是我自己理解的 错误可能都有  没有参考价值当一个函数对全局变量操作时候,如果加锁那么就是线程安全函数,说一个函数是线程安全的就是从这里出发的   可重入函数   也就是可以被多个线程同时调用,比如自己实现的readline函数里面会涉及到缓冲区,这是全局变量  ,这个函数就是不可重入的可重入函数肯定是线程安全 但是反过来不是 比如出现死锁   另外  

2017-12-19 20:20:48 157

原创 成员函数作为可调用对象的方法

成员函数不是可调用的方法  一般需要给它绑定对象如 Screen myScreen;先要声明一个成员函数类型的变量      char (Screen::*pmf2)(Screen::pos, Screen::pos);     pmf2=&Screen::get;      调用   myScreen.*pmf2(1,3);function和成员函数相结合的时候    funct

2017-12-10 14:46:44 827

原创 命令模式

本人水平一般  写的都是以后用来复习的知识点  没有观看的价值命令模式 有五个部分  客户端  请求者  具体命令类 抽象方法类  接受者  先说下 录音机---典型的应用命令模式     比如录音机有4个键,名字为play,rewind,stop                    那我们编程模拟实现功能的时候,可以就这样设计class keypad{     void pla

2017-12-10 13:17:37 130

原创 asio::run和post

下面的内容都是自己的理解本人垃圾中的战斗机 只是记录下心得 下次好复习post没有具体看源代码 ,但是post中的参数是一个仿函数,这个函数会去构造一个completion_handle的类,持有post函数的类中应该是有个队列,这个队列里面放的是complex_handel

2017-12-03 21:22:35 558

空空如也

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

TA关注的人

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