自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 win64位系统注册表

不同64位系统注册表结构和32位系统注册表结构略有不同。比如:32位 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\64位 HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\路径被映射到wow6432node下,如果恰巧32位同路径下值相同,就可以顺利取到值。Windows 64位系统中的注册表64 位Windows系统中有x64、x86两种注册表。64 位Windows系统..

2020-07-30 23:30:26 1212

原创 现代C++ 理解右值引用

右值引用是C++11中新增新的引用类型。右值引用只不过是一种新的 C++ 语法。基于右值引用,引申出的 2 种 C++ 编程技巧:移动语义和完美转发,难以理解。引入目的 作用好处引入右值引用的主要目的是提高程序运行效率。有些对象在复制时需要进行深复制(拷贝),深拷贝往往非常耗时。合理使用右值引用可以避免深复制操作。右值引用通过减少内存的重复申请、拷贝和释放,有效的提高C++程序的性能。左值和右值左值是可寻址的变量;(有名称,能获取其存储地址的实例对象)右值是不可寻址的字.

2020-07-27 20:08:44 982

原创 问题:为什么需要序列化

概念 序列化 就是将内存中的对象转换为字节序列,方便持久化到磁盘或者网络传输。 反序列化 就是将字节序列转换为内存中的对象可以是文件中的,也可以是网络传输过来的。作用对象转换为有序字节流,方便在网络上传输和保存在本地文件中。在传递和保存对象时。保证对象的完整性和可传递性。根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。字节流中保存对象。对象的序列化和反序列化主要就是使用ObjectOutputStream 和 ObjectInp...

2020-07-24 16:09:55 766 1

原创 关键字 constexpr

constexpr明确定义了编译阶段常量。在栈上定义的数组,数组的长度必须是一个常量表达式:intayy[17];//正确 int ayy[7 + 4];//正确 int length = 8;int ayy[length]; //错误,length是变量常量表达式常量表达式和非常量表达式的计算时机不同:非常量表达式是在程序运行阶段计算; 常量表达式是在程序的编译阶段计算,这提高了程序的执行效率,节省了每次程序运行时都需要计算一次的时间。功能const...

2020-07-23 23:02:36 311

原创 windows修复命令

系统有一些问题的时候需要修复。使用Powershell命令修复系统:按Windows+X,再按A打开命令提示符(管理员),输入:Sfc /ScanNow 命令,扫描并修复系统配置文件扫描所有保护的系统文件的完整性,并使用正确的 Microsoft 版本替换不正确的版本。SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<file>] [/VERIFYFILE=<file>] [/OFFWINDIR=<offli...

2020-07-21 15:32:04 3997 1

原创 自动类型推断 decltype类型推导

decltype是C++11新增的关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导。decltype 是“declare type”的缩写,译为“声明类型”。为什么需要 decltype 关键字auto并不适用于所有的自动类型推导。必须对auto声明的类型进行初始化,否则编译器不能推导出auto的实际类型。而有些场景需要根据运行结果进行类型推导。这是auto不能做到的。decltype(f()) sum = x;sum的类型就是函数f的返回值类型...

2020-07-14 14:08:38 263

原创 socket概念通信基石

socket起源 socket起源于Unix,而Unix/Linux基本模式就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket也是该模式的实现,即:socket也是一种特殊的文件,socket的api函数就是对Socket对象进行文件操作(读/写IO、打开、关闭)。来实现通信的。  Socket()函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。Socket...

2020-07-12 23:32:02 158

原创 C++的 lamda函数

lamda被用来表示一种匿名函数。lamda的概念以lamda概念为基础的“函数式编程”是与命令式编程、面向对象编程等并列的一种编程泛型。很多流行的语言都提供了对lamda的支持。C++也不例外。这样C++从基于命令式编程范型的C语言,加入了面向对象编程范型产生的C++,现在又加入了函数式编程范型的lamda新语法。C++11 lamda函数lamda历史悠久,具体到C++11里,它的代码和原来C++的代码风格有很大差别。auto totalFunc = [](int x , in.

2020-07-08 23:11:54 1006

原创 802.1x协议身份认证

802.1x的协议介绍: 802.1x协议起源于802.11协议,后者是IEEE的无线局域网协议,制订802.1x协议的初衷是为了解决无线局域网用户的接入认证问题。802.1X 身份验证有助于增强 802.11无线网络和有线以太网网络的安全性,方法是要求提供用于网络访问的证书或智能卡。 此身份验证类型通常用于工作场所连接。 IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议。后来,802.1X协议作为局域网端口的一个普通接入控制机制在...

2020-07-08 18:47:45 4119

SpinLock.cpp

为了效率,不使用C++语言提供的Mutex互斥量,而使用不使用线程被阻塞的方式,即所谓的自旋锁,这是自旋锁的一种实现方式,使用C++11的原子变量,不用锁机制,实现的一种无锁的自旋锁

2020-05-26

空空如也

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

TA关注的人

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